一、表設計
1、避免使用null 占用額外空間、索引無效、檢索麻煩
2、能用int 不用varchaer,能用varchaer 不用text
3、int 最好給預設值 0 、varchar emptystring
4、不使用外來鍵(程式約束)、使用自增列
5、字段規範名稱統一
二、sql查詢
1、使用統一大寫或者小寫,mysql預設大小寫敏感
2、不使用觸發器,程式實現
3、不使用 *、 or、!=、<>
4、不使用count(*)
查詢單條資料加 limit 1提高效能,查到資料會終止執行
5、搜尋條件字段建立聯合索引(索引名稱:表_欄位_欄位_欄位)
檢視索引
show index from products
簡單索引
create index products_productid on products (productid);
多重索引
reate index products_productname_sku on mytable (productname,sku);
測試索引 (explain)
刪除索引
drop index products_productname_sku on products
mysql優化總結
如果大家有異議,可以在後面補充。我會隨時更新的。現在大概列出如下 望各位補充 1.資料庫的設計 盡量把資料庫設計的更小的佔磁碟空間.1 盡可能使用更小的整數型別.mediumint就比int更合適 2 盡可能的定義欄位為not null,除非這個字段需要null.這個規則只適合欄位為key的情形 3...
mysql優化總結
1 資料庫設計 滿足三大正規化 第一正規化 列的原子性 第二正規化 確保表中的每列都和主鍵相關,乙個表只能儲存一類資料,不能放多類的資料,第三正規化 確保同一行資料不存在傳遞關係 2 資料庫建表 1 儲存引擎選擇 需要支援事務 外來鍵 更新和查詢都很頻繁的使用innodb,如果要使用全文索引 資料更...
mySQL優化總結
mysql通過explain命令輸出執行計畫,對要執行的查詢在這裡插入描述進行分析。執行計畫的限制 無法展示儲存過程,觸發器,udf 自定義函式 對查詢的影響 無法使用explain對儲存過程進行分析 早期版本的mysql只支援對select語句進行分析,如果想要分析update,insert語句需...