mysql索引規範

2022-05-21 09:37:06 字數 805 閱讀 4918

索引並不是越多越好!索引可以提高查詢效率,但會降低增刪改效率。但多了甚至會降低查詢效率。

innodb是按照主鍵索引的順序來組織表,如沒有建立主鍵,mysql會選擇第乙個非空唯一索引做為主鍵,或生成乙個佔6個位元組的主鍵,自動生成的主鍵效能並不是最好的,所以建立表時最好明確建立乙個主鍵:

1、不使用更新頻繁的列為主鍵,不使用聯合索引作為主鍵,否則會降低效能

2、不使用uuid,md5,hash,字串作為主鍵,無法保證資料自動增長

3、主鍵建議選擇使用自增id值

常見索引列建議:

select、update、delete語句的where從句中列建立索引

包含在order by 、group by、distinct中的字段

多標join的關聯列

復合索引列的順序:

區分度最高的列放在聯合索引的最左側

盡量把字段長度小的列放在聯合索引的最左側

使用頻繁的列放到聯合索引的左側

嚴格控制索引的數量,避免建立冗餘索引和重複索引,如:

冗餘索引,index(a,b,c),index(a,b),index(a)

重複索引,primary key(id),index(id),unique index(id)

對於頻繁的查詢優先考慮使用覆蓋索引,避免inonodb表進行索引的二次查詢,可以把隨機io變為順序io加快查詢效率

覆蓋索引:就是包含了所有查詢欄位的索引

盡量避免使用外來鍵約束,但一定在表與表之間的關聯鍵上建立索引

外來鍵可以用於保證資料的參照完整性,但建議在業務端實現

外來鍵會影響父表和子表的寫操作從而降低效能

mysql索引規範

摘要 主鍵索引名為 pk 欄位名 唯一索引名為 uk 欄位名 普通索引名則為 idx 欄位名 說明 pk 即 primary key uk 即 unique key 序號規範 說明例子 1 強制 業務上具有唯一特性的字段,即使是多個欄位的組合,也必須建成唯一索引。不要以為唯一索引影響了 insert...

mysql 索引建立標準 mysql索引規範

索引並不是越多越好!索引可以提高查詢效率,但會降低增刪改效率。但多了甚至會降低查詢效率。innodb是按照主鍵索引的順序來組織表,如沒有建立主鍵,mysql會選擇第乙個非空唯一索引做為主鍵,或生成乙個佔6個位元組的主鍵,自動生成的主鍵效能並不是最好的,所以建立表時最好明確建立乙個主鍵 1 不使用更新...

mysql 筆記 命名 索引規範

1 命名規範 所有資料庫物件名稱必須使用小寫字母並用下劃線分割 禁止使用mysql保留關鍵字 如果表名中包含關鍵字查詢時,需要將其有單引號括起來 見名識意,並且最後不要超過32個字元 臨時庫表以tmp 為字首並以日期為字尾,備份表以bak 為字首並以日期為字尾 所有儲存相同資料的列名和列型別必須一致...