從sql語句考慮
1、對於查詢的sql 語句 如 select .... 跟 insert into table_name select * from .... 還有 這種要盡可能的使用索引
除此之外, 等值條件 也盡可能的使用索引 如 a.studno=b.studno
2、使用explain 產看 select的執行計畫
3、當資料只有一行時候 就使用 limit
4、條件字段 跟 連線字段 需要建立索引
從資料庫跟表設計考慮
1、永遠為每個表設定乙個 id 最好使用 int 並且是自動遞增型別(auto_increment)
2、 屬於某列重複率很高的 可以考慮使用枚舉行 enum 如:性別,種族 create table table_name(*** enum("男","女","未知"));
3、 盡可能的使用 not null, null 在mysql 中也是佔乙個位元組的
4、對於固定長度的列使用固定的長度 char 型別更好
除此之外, 如果沒有事物的嚴格要求, 盡可能的使用myisam 引擎, 如果事物要嚴格 建議使用innodb引擎
如果要求效能,且能夠保證資料庫 不宕機, 那麼可以考慮 memory 引擎
mysql 效能優化的幾點建議
1 盡量取出自己想要的字段,不要這樣select from table 因為你取的越多,網路傳輸的資料就越多,從網路頻寬和網路緩衝區上來看都是浪費。特別是在order,效能更是下降。實現方式是先將需要排序的字段和可以直接定位到相關行資料的指標資訊取 出,然後在我們所設定的排序區 通過引數sort b...
MySQL優化的幾點建議
設計資料表的時候要遵守三正規化,但是不要嚴格遵守。可以適度打破正規化。乙個表字段不適合過多。常用表中只要保留常用的字段 盡量給每個字段新增not null 根據表的特點來選擇合適的表引擎,如果這個表經常被寫,應該選擇innodb,但是mysql5.6一般都是選擇innodb 根據表存放的資料來決定字...
MySQL優化的幾點建議
本文 設計資料表的時候要遵守三正規化,但是不要嚴格遵守。可以適度打破正規化。乙個表字段不適合過多。常用表中只要保留常用的字段 盡量給每個字段新增not null 根據表的特點來選擇合適的表引擎,如果這個表經常被寫,應該選擇innodb,但是mysql5.6一般都是選擇innodb 根據表存放的資料來...