1、sql語句盡可能簡單——(一條sql只能在乙個cpu運算,最好將大語句拆小語句);
2、不用select * (消耗cpu,io,記憶體,頻寬,這種程式不具有擴充套件性);
3、or 改寫為 in ; or 改寫為union;
select stid from t where class =「a」 or class=「b」 or name = 「anna」;
=>
select stid from t where class in (「a」,「b」 )
union
select stid from t where name=「anna」
4、避免使用%;count(*);
5、使用union all替代union(union有去重開銷);
6、少用連線join;——反正規化化,以空間來換取時間
(以前總會建立一些基礎表,用於匹配,結果查詢總是要left join 好多表,導致執行速度。。。)
7、建立索引;不在索引做列運算
alter table table_name add index index_name (column_list1,column_list2);
其它:建表優化
1、字元轉化為數字(能轉化的最好轉化,同樣節約空間、提高查詢效能);
2、避免使用null欄位(null欄位很難查詢優化、null欄位的索引需要額外空間、null欄位的復合索引無效);
3、少用text型別(盡量使用varchar代替text欄位);
4、不用外來鍵
5、合理使用索引,字元字段必須建字首索引
用到的轉化函式:
1、unix_timestamp()函式是將日期格式的資料轉換為int型別
2、from_unixtime(timestr)函式是將int型別轉換為時間格式
3、inet_aton() 函式是將ip位址的資料型別轉化為int型別
4、inet_ntoa()函式是將ip位址的資料型別轉化為varchar型別
其它的其它:
高大尚的優化配置引數、配置檔案。。。。。。
算了算了,我用不到用不到,不是我該學的。。。。。。
i am not a dba,也發展不到那邊去吧,需要再來需要再來。
其它日常查詢優化方法,有推薦的嗎?象徵性地問一問,反正也不會有人注意到,哈哈哈哈,力扣刷起來吧
效能優化日常總結
減少事件註冊,節省記憶體。簡化了dom節點更新時,相應事件的更新。適合用事件委託的事件 click,mousedown,mouseup,keydown,keyup,keypress。使用場景 新使用者訪問,後端可以通過 cookie 判斷是否為首次進入站點,對於這類使用者,dns prefetch ...
mysql日常使用總結
1.在mysql中 double型別字段 不能指定長度,如 alter table pur purchase item config history change column safe stock day safe stock day double 20 not null comment 安全水位...
Mysql效能優化點
全值匹配我最愛 最佳左字首法則如果索引了多列,要遵守最左字首法則。具體是指,查詢的where條件從索引的最左前列開始並且不跳過索引的中間列 不在索引列上做任何操作 計算 函式 自動or手動 型別轉換 會導致索引失效 儲存引擎不能使用索引中範圍條件右邊的列 盡量使用覆蓋索引 索引列和查詢列一致 減少s...