mysql 表索引的一些要點(diǎn)
1、表的主鍵、外鍵必須有索引;
2、數(shù)據(jù)量超過300的表應(yīng)該有索引;
3、經(jīng)常與其他表進(jìn)行連接的表,在連接字段上應(yīng)該建立索引;
4、經(jīng)常出現(xiàn)在Where子句中的字段,特別是大表的字段,應(yīng)該建立索引;
5、索引應(yīng)該建在選擇性高的字段上;
6、索引應(yīng)該建在小字段上,對(duì)于大的文本字段甚至超長(zhǎng)字段,不要建索引;
7、復(fù)合索引的建立需要進(jìn)行仔細(xì)分析;盡量考慮用單字段索引代替:
A、正確選擇復(fù)合索引中的主列字段,一般是選擇性較好的字段;
B、復(fù)合索引的幾個(gè)字段是否經(jīng)常同時(shí)以AND方式出現(xiàn)在Where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復(fù)合索引;否則考慮單字段索引;
C、如果復(fù)合索引中包含的字段經(jīng)常單獨(dú)出現(xiàn)在Where子句中,則分解為多個(gè)單字段索引;
D、如果復(fù)合索引所包含的字段超過3個(gè),那么仔細(xì)考慮其必要性,考慮減少?gòu)?fù)合的字段;
E、如果既有單字段索引,又有這幾個(gè)字段上的復(fù)合索引,一般可以刪除復(fù)合索引;
8、頻繁進(jìn)行數(shù)據(jù)操作的表,不要建立太多的索引;
9、刪除無用的索引,避免對(duì)執(zhí)行計(jì)劃造成負(fù)面影響;
以上是一些普遍的建立索引時(shí)的判斷依據(jù)。一言以蔽之,索引的建立必須慎重,對(duì)每個(gè)索引的必要性都應(yīng)該經(jīng)過仔細(xì)分析,要有建立的依據(jù)。因?yàn)樘嗟乃饕c不充分、不正確的索引對(duì)性能都毫無益處:在表上建立的每個(gè)索引都會(huì)增加存儲(chǔ)開銷,索引對(duì)于插入、刪除、更新操作也會(huì)增加處理上的開銷。另外,過多的復(fù)合索引,在有單字段索引的情況下,一般都是沒有存在價(jià)值的;相反,還會(huì)降低數(shù)據(jù)增加刪除時(shí)的性能,特別是對(duì)頻繁更新的表來說,負(fù)面影響更大。
相關(guān)文章
Mysql中文亂碼以及導(dǎo)出為sql語(yǔ)句和Excel問題解決方法[圖文]
這幾天基于Heritrix寫了一個(gè)爬蟲,用到mysql,在導(dǎo)入導(dǎo)出數(shù)據(jù)時(shí),遇到一些亂碼問題,好不容易解決了,記錄一下,以備查看2013-04-04Mysql縱表轉(zhuǎn)換為橫表的方法及優(yōu)化教程
在應(yīng)用中為了從不同的視圖去分析數(shù)據(jù),會(huì)使用不同的方案去查詢數(shù)據(jù)庫(kù),橫表和縱表的相互轉(zhuǎn)換就是其中一個(gè)常見的情景,這篇文章主要給大家介紹了關(guān)于Mysql縱表轉(zhuǎn)換為橫表的相關(guān)資料,需要的朋友可以參考下2021-08-08MySQL復(fù)制的概述、安裝、故障、技巧、工具(火丁分享)
首先主服務(wù)器把數(shù)據(jù)變化記錄到主日志,然后從服務(wù)器通過I/O線程讀取主服務(wù)器上的主日志,并且把它寫入到從服務(wù)器的中繼日志中,接著SQL線程讀取中繼日志,并且在從服務(wù)器上重放,從而實(shí)現(xiàn)MySQL復(fù)制。2011-04-04Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開窗函數(shù)
lead和lag是在SQL中用于創(chuàng)建窗口函數(shù)的兩個(gè)常用函數(shù),這篇文章主要給大家介紹了關(guān)于Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開窗函數(shù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11MySql中把一個(gè)表的數(shù)據(jù)插入到另一個(gè)表中的實(shí)現(xiàn)代碼
本篇文章是對(duì)MySql中把一個(gè)表的數(shù)據(jù)插入到另一個(gè)表中的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05percona-toolkit之pt-kill 殺掉mysql查詢或連接的方法
本文主要描述了percona-toolkit中pt-kill的 使用實(shí)例 ,及 一些重要參數(shù)的介紹,需要的朋友可以參考下2016-04-04