設計資料表的時候要遵守三正規化,但是不要嚴格遵守。可以適度打破正規化。
乙個表字段不適合過多。
常用表中只要保留常用的字段
盡量給每個字段新增not null
根據表的特點來選擇合適的表引擎, 如果這個表經常被寫,應該選擇innodb,但是mysql5.6一般都是選擇innodb
根據表存放的資料來決定字符集,一般選擇utf8,但是如果想要存放emoji表情,就應該選擇utf8mb4
盡量選擇更加小的資料型別,但是考慮擴充套件性
盡量使用數字型別,時間型別。
減少使用文字型別(text)
不要使用*,盡量支查需要的字段。原因:可以減少傳輸資料的大小
給每條查詢sql語句新增limit,原因:可以減少傳輸資料大小
盡量根據索引來檢索資料
儘量減少在mysql中使用內建函式,減少在mysql中進行運算
減少多表聯查,可以適度冗餘字段。 也可以通過切分多表聯查語句,將多表聯查變成單錶查詢
不要在核心業務的**中使用子查詢
給經常作為where/order by/left join on/distinct欄位新增索引
合理新增聯合索引
//給name,pass建立聯合索引
select id,name,pass,*** from user where name='' and pass ='';
建立聯合索引時,區分度大的字段放到前面
or前後的字段都必須有索引
不要使用like,因為like會導致索引失效。 比如可以用全文搜尋引擎會替換like,比如sphinx/xunsearch
**
MySQL優化的幾點建議
本文 設計資料表的時候要遵守三正規化,但是不要嚴格遵守。可以適度打破正規化。乙個表字段不適合過多。常用表中只要保留常用的字段 盡量給每個字段新增not null 根據表的特點來選擇合適的表引擎,如果這個表經常被寫,應該選擇innodb,但是mysql5.6一般都是選擇innodb 根據表存放的資料來...
mysql 效能優化的幾點建議
1 盡量取出自己想要的字段,不要這樣select from table 因為你取的越多,網路傳輸的資料就越多,從網路頻寬和網路緩衝區上來看都是浪費。特別是在order,效能更是下降。實現方式是先將需要排序的字段和可以直接定位到相關行資料的指標資訊取 出,然後在我們所設定的排序區 通過引數sort b...
mysql 效能優化的幾點建議
從sql語句考慮 1 對於查詢的sql 語句 如 select 跟 insert into table name select from 還有 這種要盡可能的使用索引 除此之外,等值條件 也盡可能的使用索引 如 a.studno b.studno 2 使用explain 產看 select的執行計畫...