索引會佔據瓷盤空間,資料越大索引佔據空間越大
mysql表中除了聚集索引外其他索引都是輔助索引(secondary index,也稱為非聚集索引),與聚集索引的區別是:輔助索引的葉子節點不包含行記錄的全部資料。
聚焦索引:更適合between and和order by操作,每個表只能建立乙個聚焦索引(如果未定義主鍵,mysql取第乙個唯一索引(unique)而且只含非空列(not null)作為主鍵)
輔助索引:一張表可以建立多個輔助索引,索引很影響update和insert速度
盡量選擇區分度高的列作為索引(區分度高就是重複項少),重複項高會增加b樹高度,極端情況下型別全盤掃瞄
條件查詢時,進來不要把索引列進行計算,開銷過大
多條件and查詢時,mysql會根據聯合索引從左往右搜尋,應該吧區分度高的列放在聯合索引前
最左字首匹配原則
其他注意事項:
1.建立表時盡量使用 char 代替 varchar
2.組合索引代替多個單列索引(由於mysql中每次只能使用乙個索引,所以經常使用多個條件查詢時更適合使用組合索引)
3.使用連線(join)來代替子查詢(sub-queries)
資料庫注意事項
主要就是6點 1.必須考慮業務唯一性並建復合唯一索引 2.所有字段盡量設定為not null 3.區分度低的字段不要建索引 4.邏輯外來鍵要建索引 5.用uuiddelete id varchar 32 not null default 做偽刪除 6.建議確定無負數的字段設定unsigned 建表時...
資料庫維護注意事項
壓縮日誌及資料庫檔案大小 特別注意 請按步驟進行,未進行前面的步驟,請不要做後面的步驟 否則可能損壞你的資料庫.一般不建議做第4,6兩步 第4步不安全,有可能損壞資料庫或丟失資料 第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.1.清空日誌 dump transaction ...
資料庫設計注意事項
關係型資料庫還能盛行多久?針對表的描述中,要重點說明設計這張表的原因 理由或目的,以及與其他表的關係,尤其是與業務邏輯緊密相關的表。指令碼中,每個字段新增必要的注釋,例如 comment on table sys users t is 系統使用者的相關資訊 comment on column sys...