MySQL優(yōu)化總結(jié)

1.SQL關(guān)鍵字的執(zhí)行的順序

from======》where======》group by======》having======》select======》order by


2.避免全表掃描,將where條件和order by條件后用到的字段建立索引。

開發(fā)初期,表少,索引創(chuàng)建與否,可能對(duì)性能沒啥影響;但是到表記錄多的時(shí)候,缺少索引,可能對(duì)性能的影響會(huì)越來越大。

建立索引的注意點(diǎn)

1)大量重復(fù)數(shù)據(jù)不要建索引

當(dāng)索引列有大量重復(fù)數(shù)據(jù)時(shí),這時(shí)索引并沒有提高查詢效率。

比如:性別sex,男和女各占一半,建索引沒起到作用。

2)索引不是越多越好,增改會(huì)變慢

一個(gè)表的索引最好不要超過6個(gè)。索引雖然提高了select的速度,但是insert和update的速度會(huì)變慢。

3)避免對(duì)索引進(jìn)行一下操作

避免對(duì)索引字段進(jìn)行計(jì)算操作

避免在索引字段上使用in、<>、!=

避免在索引列上使用is null、is not null? ??

避免在索引列上使用函數(shù)

避免在索引列上出現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換

避免建立索引的列中使用空值

總結(jié):索引分為:主鍵索引、普通索引、唯一索引、文本索引


3.where

1)避免在where后使用in、<>、!=、null、in、or、函數(shù)、表達(dá)式操作

2)exists替代in

3)like也會(huì)全表掃描


4.explain解釋及個(gè)字段含義

explain顯示MySQL如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優(yōu)化的查詢語句。

1)id:id是一組數(shù)字,表示查詢的執(zhí)行順序

2)select_type:查詢類型

SIMPLE簡單表:不使用子查詢或連接

PRIMARY主查詢:外層的查詢

UNION:第二個(gè)或后面的查詢語句

SUBQUERY:子查詢中的第一個(gè)select

3)table:輸出結(jié)果的表


總之:possible_keys是可能用到的索引、key_lan和rows的值越小越好

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容