把dept表中,我增加幾個部門:
alter table dept add index my_ind (dname,loc); // dname 左邊的列,loc就是右邊的列
說明,如果我們的表中有復合索引(索引作用在多列上), 此時我們注意:
1.對於建立的多列索引,只要查詢條件使用了最左邊的列,索引一般就會被使用。
explain select * from dept where loc='aaa'\g
就不會使用到索引
2.對於
使用like的查詢,查詢如果是 『%aaa』 不會使用到索引
『aaa%』 會使用到索引。
比如: explain select * from dept where dname like '%aaa'\g
不能使用索引,即,在like查詢時,關鍵的 『關鍵字』 , 最前面,不能使用 % 或者 _這樣的字元., 如果一定要前面有變化的值,則考慮使用 全文索引->sphinx.
3.如果條件中有or,即使其中有條件帶索引也不會使用。換言之,就是要求使用的所有字段,都必須建立索引, 我們建議大家盡量避免使用or 關鍵字
select * from dept where dname=』***』 or loc=』xx』 or deptno=45
4.如果列型別是字串,那一定要在條件中將資料使用引號引用起來。否則不使用索引。(新增時,字串必須』』), 也就是,如果列是字串型別,就一定要用 『』 把他包括起來.
5.如果mysql估計使用全表掃瞄要比使用索引快,則不使用索引。
**explain 可以幫助我們在不真正執行某個sql語句時,就執行mysql怎樣執行,這樣利用我們去分析sql指令.
資料庫 優化 索引 索引的優化注意事項
設計好mysql的索引可以讓你的資料庫飛起來,大大的提高資料庫效率。設計mysql索引的時候有一下幾點注意 對於查詢佔主要的應用來說,索引顯得尤為重要。很多時候效能問題很簡單的就是因為我們忘了新增索引而造成的,或者說沒有新增更為有效的索引導致。如果不加索引的話,那麼查詢任何哪怕只是一條特定的資料都會...
MySql資料庫索引優化注意事項
設計好mysql的索引可以讓你的資料庫飛起來,大大的提高資料庫效率。設計mysql索引的時候有一下幾點注意 1,建立索引 對於查詢佔主要的應用來說,索引顯得尤為重要。很多時候效能問題很簡單的就是因為我們忘了新增索引而造成的,或者說沒有新增更為有效的索引導致。如果不加索引的話,那麼查詢任何哪怕只是一條...
資料庫優化注意事項
基於hibernate customer order表 1.乙個order中有乙個customer單項多對一 n 1 先儲存一再儲存多,因為這樣再儲存多的時候外鍵值已經確定,這時候時多的一方維護外來鍵,再儲存order時會帶著儲存外來鍵的customerid,可以不用在update n中的外來鍵,2...