多年msyql使用積累的一些最基本的坑,簡單記錄一下:
1.訪問控制(User和主機);
2.禁止業務系統使用root,root應作為保留管理員賬號;
3.字符集建議都設定為utf8mb4;
4.表欄位不得超過30個,且單表資料最好不要超過400w,大資料進行合理分表(水平/垂直);
5.表必須有主鍵,且設定id為自增主鍵;
6.庫表欄位等要規範且有意義的命名,使用蛇形命名且禁止大寫;
7.引擎型別一律為InnoDB,如無特殊需求。禁止使用InnoDB/MyISAM/Memory以外的儲存引擎;
8.表欄位禁止NULL,必須NOT NULL default 預設值,NULL值會存在佔用額外儲存空間、索引失效等其他問題;
9.欄位最好不要出現blob、text,實在需要時請使用擴充表;
10.唯一索引以“uq_”開頭,普通索引以“idx_”開頭;
11.索引個數最好不要超過5個;
12.join必須使用索引,in查詢不要超過1000,合理使用join與in(笛卡爾積與子查詢不用索引);
13.禁止寫select *,同理禁止insert into t1 values(…);
14.UNION ALL替代UNION;
15.DML語句where條件必須用索引,注意表鎖問題;
16.合理使用索引,注意索引左原則、索引失效,null值等的影響;
本作品採用《CC 協議》,轉載必須註明作者和本文連結