mysql 索引优化 2_MySQL2索引优化
索引
無(wú)論在工作中,還是在面試當(dāng)中,數(shù)據(jù)庫(kù)優(yōu)化是一個(gè)避不開(kāi)的技術(shù)點(diǎn),關(guān)于數(shù)據(jù)庫(kù)的優(yōu)化,有如下幾點(diǎn):
(1)優(yōu)化表結(jié)構(gòu),對(duì)常用的字段和非常用的字段分開(kāi)存儲(chǔ);
(2)優(yōu)化SQL,合理使用索引;
(3)做數(shù)據(jù)庫(kù)讀寫分離,減少IO壓力,由于數(shù)據(jù)庫(kù)對(duì)記錄做了持久化至磁盤,對(duì)磁盤的IO是非常消耗性能的;
(4)使用緩存技術(shù),不讓所有的數(shù)據(jù)請(qǐng)求都打到數(shù)據(jù)庫(kù)上;
(5)對(duì)業(yè)務(wù)做垂直拆分,減少耦合度;
(6)對(duì)標(biāo)做水平拆分,這一步是比較復(fù)雜,要注意主鍵生成原則和請(qǐng)求路由規(guī)則。
索引使用優(yōu)點(diǎn)和注意點(diǎn)
一般可以通過(guò)Explain查詢檢索的Rows的記錄量來(lái)衡量查詢速度;
但是把索引建立在有大量重復(fù)數(shù)據(jù)的字段上,并不能有效地提升SQL效率;
發(fā)現(xiàn)沒(méi)有用到索引,這是對(duì)索引列使用like的限制,要對(duì)索引列使用like,通配符只能在結(jié)尾,開(kāi)頭不可以有任何的通配符;
在索引列上使用MySQL函數(shù)也會(huì)導(dǎo)致索引失效
(1)使用LIKE關(guān)鍵字的查詢語(yǔ)句
在使用LIKE關(guān)鍵字進(jìn)行查詢的查詢語(yǔ)句中,如果匹配字符串的第一個(gè)字符為"%",索引不會(huì)起作用,只有"%"不在第一個(gè)位置,索引才會(huì)起作用
(2)使用多列索引的查詢語(yǔ)句
MySQL可以為多個(gè)字段創(chuàng)建索引,一個(gè)索引可以包含16個(gè)字段,對(duì)于多列索引,只有查詢條件中使用了這些字段中第一個(gè)字段時(shí),索引才會(huì)被使用
(3)使用OR關(guān)鍵字的查詢語(yǔ)句
查詢語(yǔ)句的查詢條件中只有OR關(guān)鍵字,且OR前后兩個(gè)條件都是索引時(shí),查詢才會(huì)使用索引,否則,查詢將不使用索引
總結(jié)
以上是生活随笔為你收集整理的mysql 索引优化 2_MySQL2索引优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 内核编号含义_如何阅读lin
- 下一篇: mysql 取数据 展示_php mys