首用MYSQL索引的快感

2021-05-11 11:42:32 字數 1194 閱讀 3420

用了mysql一年多,且一直被mysql的快速查詢所吸引,可今天怎麼碰石頭了?

1dp4v*w+t0

3p)on3ip1bc0 由於我的程式一般都上千條記錄,就沒有為查詢效率問題考慮太多,所以我的確也不知道索引的好處,也一直都是不屑於用索引的,但這次我一試,我發現我錯了,我真的錯了,錯得非常厲害,索引這麼好的功能卻一直被我拋之腦後。

#z z(?|a$v0

s%p!b?/e `v b0 講講索引後的探索:phpchina 開源社群門戶of%_ hs}y

phpchina 開源社群門戶*chz7y/+x/~k$eha

我 發現我在建立索引的時候,竟然花了10幾秒鐘,我心想,乙個索引還不至於吧,建立乙個索引mysql伺服器的響應時間怎麼這麼長?我就又跟著我的好奇心想 了想,是不是由於記錄數多了的原因?難道建立索引是把所有記錄的這個欄位都寫到某個地方了?想到這裡,我的滑鼠非常靈活的幫我進入到了mysql資料檔案 夾(data)裡面相對應的庫相對應的這個百萬條記錄的表的三個檔案其中有(xx.myi,xx.myd,xx.frm),以前我知道其中有乙個是放資料 的,另外兩個其中有乙個是表的結構,還有乙個確實不知道是什麼,因為大小也一直和表結構檔案一樣都是40k左右。但今天我知道了,是放表索引的。我剛才建 立了乙個百萬條記錄索引後這個檔案一下漲到了11m。

pp&[ o ]*m^?1c"f[0

phpchina 開源社群門戶8a(a(kr$[q-_$n�})|,wf

再想想mysql表副檔名:phpchina 開源社群門戶*d+^,nd�a7{

phpchina 開源社群門戶pa$/m^�e

frm是不是就是frame(結構);

hv(w[,o0 myi,其中的i是不是就是index(索引);

8he+tw.w$sl0 myd,其中的d是不是就是data(資料);phpchina 開源社群門戶0m qv+ld*^t${

k?5r l'mm0 我想沒有比這更好的解釋了吧?

5eb5n|x)_ix0

phpchina 開源社群門戶c!vf]7bjd @8/ 最後根據以上分析後,再一次偶然的操作發現,update比原來慢了至少一倍。所以說天下還真沒有免費的午餐啊。不過相比於select來說,update的效率損失一點完全可以忽略不計,因為select的效率可提高了將近100倍啊。

首用MYSQL索引

mysql百萬記錄效率問題解決了。心情舒暢,特上來講一篇為初學者作貢獻。用了mysql一年多,且一直被mysql的快速查詢所吸引,可今天怎麼碰石頭了?原來就是索引在做怪。由於本人是業餘愛好自學php mysql開發,所以在理論優化方面一般考慮甚少,基本不用字段索引去做mysql優化,可能也是我不會用...

MySQL 復合索引該怎麼用

本文均已學習為主,不考慮實際業務。若在實際業務中,還需考慮增刪改的代價和實際需要。資料量大,查詢業務多的 where從句 group by從句 order by從句 on從句 中的字段,可以考慮建索引。alter table t add index abc a,b,c 這裡有乙個原則 離散度大的列放...

mysql索引怎麼用 mysql怎麼使用索引?

在排序操作中如果能使用到索引來排序,那麼可以極大的提高排序的速度,要使用索引來排序需要滿足以下兩點即可。1 order by子句後的列順序要與組合索引的列順序一致,且所有排序列的排序方向 正序 倒序 需一致 2 所查詢的字段值需要包含在索引列中,及滿足覆蓋索引。通過例子來具體分析 在user tes...