MySQL優化建議

2021-08-06 08:34:57 字數 834 閱讀 2472

設計資料表的時候要遵守三正規化,但是不要嚴格遵守。可以適度打破正規化。

乙個表字段不適合過多。

常用表中只要保留常用的字段

盡量給每個字段新增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優化建議

1.建立 2.sql編寫mysql欄位型別 資料型別 含義date 3位元組,日期,格式 2014 09 18 time 3位元組,時間,格式 08 42 30 datetime 8位元組,日期時間,格式 2014 09 18 08 42 30 timestamp 4位元組,自動儲存記錄修改的時間 ...

mysql優化建議

sql優化判斷 1.首先是定位效率比較低的sql語句 2.使用explain分析低效sql的執行計畫 type const system 單錶中最多有乙個匹配行 type eq ref 使用唯一索引,對於每個索引鍵值,表中只有一條記錄匹配 type ref 使用的是非唯一索引或者字首索引掃瞄,返回匹...

mysql優化建議

mysql優化 1,整數型索引優於字元型索引 2,在長度夠用的情況下,盡可能用較小字段,能用int,就不用bigint,能用varchar 50 不用varchar 500 這樣可以節約更多的資源 3,即使varchar 1000 和varchar 100 在儲存相同長字元的時候,占用儲存空間一樣,...