資料庫優化(四) 索引使用注意事項

2021-09-09 08:00:45 字數 852 閱讀 8209

把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...