MYSQL索引建立需要注意以下幾點(diǎn)細(xì)節(jié)
更新時(shí)間:2013年03月01日 10:06:57 作者:
建立MYSQL索引時(shí)需要注意以下幾點(diǎn):建立索引的時(shí)機(jī)/對(duì)于like/對(duì)于有多個(gè)條件的/開啟索引緩存/建立索引是有代價(jià)的等等,感興趣的你可以參考下本文,或許可以幫助到你
1.建立索引的時(shí)機(jī):若表中的某字段出現(xiàn)在select、過(guò)濾、排序條件中,為該字段建立索引是值得的。
2.對(duì)于like '%xxx'的模糊查詢,普通的索引是無(wú)法滿足的,需要建立全文索引。
3.對(duì)于有多個(gè)條件的,比如: "...where a=xxx and b=yyy","...where a=xxx order by b","...where a=xxx group by b"。需要使用組合索引。但是組合索引只能在SQL語(yǔ)句中滿足"最左前綴"的條件下使用。且組合索引有一些副作用,如索引尺寸可能比數(shù)據(jù)本身大,因?yàn)榻M合索引的組合條目多。所以在實(shí)際應(yīng)用中,要量身定做,使用慢查詢分析工具分析。
4.開啟索引緩存,直接在內(nèi)存中查找索引,不用再磁盤中。
5.建立索引是有代價(jià)的,當(dāng)update、delete語(yǔ)句執(zhí)行時(shí),會(huì)使得索引更新,將耗掉更多的時(shí)間??梢允褂胢ysqlreport報(bào)告,了解select、update、delete、insert、replace各語(yǔ)句所占的百分比。
2.對(duì)于like '%xxx'的模糊查詢,普通的索引是無(wú)法滿足的,需要建立全文索引。
3.對(duì)于有多個(gè)條件的,比如: "...where a=xxx and b=yyy","...where a=xxx order by b","...where a=xxx group by b"。需要使用組合索引。但是組合索引只能在SQL語(yǔ)句中滿足"最左前綴"的條件下使用。且組合索引有一些副作用,如索引尺寸可能比數(shù)據(jù)本身大,因?yàn)榻M合索引的組合條目多。所以在實(shí)際應(yīng)用中,要量身定做,使用慢查詢分析工具分析。
4.開啟索引緩存,直接在內(nèi)存中查找索引,不用再磁盤中。
5.建立索引是有代價(jià)的,當(dāng)update、delete語(yǔ)句執(zhí)行時(shí),會(huì)使得索引更新,將耗掉更多的時(shí)間??梢允褂胢ysqlreport報(bào)告,了解select、update、delete、insert、replace各語(yǔ)句所占的百分比。
您可能感興趣的文章:
- MySQL建立唯一索引實(shí)現(xiàn)插入重復(fù)自動(dòng)更新
- 詳解mysql建立索引的使用辦法及優(yōu)缺點(diǎn)分析
- mysql 添加索引 mysql 如何創(chuàng)建索引
- MySQL查看、創(chuàng)建和刪除索引的方法
- mysql 中存在null和空時(shí)創(chuàng)建唯一索引的方法
- 什么情況下需要?jiǎng)?chuàng)建MySQL索引?
- MySQL下使用Inplace和Online方式創(chuàng)建索引的教程
- mysql創(chuàng)建Bitmap_Join_Indexes中的約束與索引
- MySQL創(chuàng)建全文索引分享
- 怎樣正確創(chuàng)建MySQL索引的方法詳解
- mysql建立高效的索引實(shí)例分析
相關(guān)文章
MySQL的常見存儲(chǔ)引擎介紹與參數(shù)設(shè)置調(diào)優(yōu)
這篇文章主要介紹了MySQL的常見存儲(chǔ)引擎介紹與參數(shù)設(shè)置調(diào)優(yōu),需要的朋友可以參考下2018-03-03linux mysql 數(shù)據(jù)庫(kù)開啟外部訪問(wèn)設(shè)置指南
Linux下設(shè)置MySQL和允許外部機(jī)器訪問(wèn),具體目錄是具體情況而定,有的人是安裝了在個(gè)人目錄下,則找到對(duì)應(yīng)的目錄則可以2012-11-11解決mysql創(chuàng)建數(shù)據(jù)庫(kù)后出現(xiàn):Access denied for user ''root''@''%'' to dat
這篇文章主要給大家介紹了如何解決mysql在創(chuàng)建數(shù)據(jù)庫(kù)后出現(xiàn):Access denied for user 'root'@'%' to database 'xxx'的錯(cuò)誤提示,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-05-05一文徹底搞懂MySQL?TimeStamp時(shí)區(qū)問(wèn)題
MySQL的timestamp類型默認(rèn)使用的是服務(wù)器的時(shí)區(qū)來(lái)存儲(chǔ)時(shí)間值,這意味著如果服務(wù)器的時(shí)區(qū)發(fā)生了變化,那么存儲(chǔ)的timestamp值也會(huì)發(fā)生變化,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一文徹底搞懂MySQL?TimeStamp時(shí)區(qū)問(wèn)題的相關(guān)資料,需要的朋友可以參考下2024-01-01MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問(wèn)題
本文主要介紹了MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06