索引和慢查询优化
索引
01 為什么要用索引
對(duì)于一個(gè)應(yīng)用來(lái)說(shuō),對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě)比例基本上是10:1,即讀多寫(xiě)少
而且對(duì)于寫(xiě)來(lái)說(shuō)極少出現(xiàn)性能問(wèn)題,大多數(shù)性能問(wèn)題都是慢查詢
提到加速查,就必須用到索引
02 什么是索引
索引就相當(dāng)于書(shū)的目錄,是mysql中一種專門(mén)的數(shù)據(jù)結(jié)構(gòu),稱為key,
索引的本質(zhì)原理就是通過(guò)不斷地縮小查詢范圍,來(lái)降低io次數(shù)從而提升查詢性能
強(qiáng)調(diào):一旦為表創(chuàng)建了索引,以后的查詢都會(huì)先查索引,再根據(jù)索引定位的結(jié)果去找數(shù)據(jù)
03 索引的影響
1、在表中有大量數(shù)據(jù)的前提下,創(chuàng)建索引速度會(huì)很慢,
2、在索引創(chuàng)建完畢后,對(duì)表的查詢性能會(huì)大幅度提升,但是寫(xiě)性能會(huì)降低
04 聚集索引(primary key)
特點(diǎn):葉子節(jié)點(diǎn)存放的一整條數(shù)據(jù)
05 輔助索引(unique,index)
特點(diǎn):
如果是按照這個(gè)字段創(chuàng)建的索引,
那么葉子節(jié)點(diǎn)存放的是:{名字:名字所在那條記錄的主鍵的值}
06 覆蓋索引
只在輔助索引的葉子節(jié)點(diǎn)中就已經(jīng)找到了所有我們想要的數(shù)據(jù)
select name from user where name='egon';select age from user where name='egon';轉(zhuǎn)載于:https://www.cnblogs.com/guodengjian/p/9038562.html
總結(jié)
- 上一篇: ajax 传递数组参数
- 下一篇: kernel笔记——块I/O