開發過程中必不可少的就是對資料庫的操作,也就離不開sql語句的書寫,我們也就需要考慮到sql語句的執行速度,需要書寫規範和優化。
1.避免進行全表掃瞄。避免使用「select * 」,用表中具體的列來查詢 。
2.避免where語句中進行null判斷,這會使引擎放棄索引進行全表掃瞄,可以用0代替null。select * from user ;
select id,name,phone,... from user;
select name from user where name is null;
3.避免使用where != 或者 where >,《操作符,否則放棄索引進行全表掃瞄。
4.模糊查詢也會進行全表掃瞄。
5.查詢時不需要的字段不要進行查詢。
6.避免對欄位進行運算。
7.where多條件查詢時,先根據條件過濾掉最多的資料。表中性別為0的資料量很多,過濾掉不為0的很少,剩下的資料再進行name欄位查詢,這樣效率比較低。選進行name過濾,剩下的資料很少再進行***過濾,執行速度更快。
8.乙個表的索引最多為6個,索引多查詢快,但insert,update操作時效率低,有可能重建索引。select name from user where ***=『0』 and name=『ban』;
select name from user where name=『ban』 and ***=『0』;
9.避免使用count(*)查詢。這樣會進行全表查詢,也沒有太大實際意義。
10.當使用資料量小的表跟資料量大的表進行關聯查詢時,不要使用強關聯,使用 left join關聯。用小表資料去大表中進行查詢資料。能夠有效的降低sql的執行時間。select count(*) from user;
select count(id) from user;
sql 語句優化總結
我們如何更迅速的從乙個大型專案中,知道是什麼影響了服務的效能。mysql 提供了一些常用的命令來查詢資料庫的執行狀態。1.show status like uptime 檢視mysql資料庫執行了多長時間 2.show status like com select 檢視mysql 資料庫的查詢次數 ...
sql語句優化總結
先前一直對sql語句優化沒有太在乎,最近 使用者量增加,發現資料庫壓力很大自己寫的語句啊,新來的架構師對我們語句一一優化,我總結如下 不斷更新。1 優化前的語句 query time 5.967435 lock time 0.000129 rows sent 1 rows examined 8034...
SQL 語句優化總結
個人日常優化sql語句的總結筆記 目前 db 承受 日平均 500w pv 左右的站點,資料檔案大小在20g左右,表資料量 在 50 500 w 左右 僅供參考 1 查詢的資料行分布情況,決定索引是否用得上,如果查詢的資料行在資料表中分布均勻,且所佔比重較大,能用上索引 反之,用不上索引 2 sel...