mysql查詢優化 未優化前的效果

2021-09-30 09:11:32 字數 3268 閱讀 9500

兩個表,test和test2

test中100萬條資料,欄位有id,networkid等

test2中有1200萬資料,欄位有testid,code等。

主鍵為bigint,沒有索引

(1)分開查詢

語句 select id from test2 where code = 'def7414551'

耗時:15.872ms

結果 78條

select id , networkid from test where id =

22805 or  id = 

30689 or  id = 

37472 or  id = 

59166 or  id = 

72242 or  id = 

81256 or  id = 

102388 or  id = 

178472 or  id = 

181171 or  id = 

206672 or  id = 

222898 or  id = 

234014 or  id = 

266944 or  id = 

276203 or  id = 

281212 or  id = 

291510 or  id = 

296095 or  id = 

349508 or  id = 

397866 or  id = 

428645 or  id = 

447432 or  id = 

519119 or  id = 

551511 or  id = 

561224 or  id = 

579833 or  id = 

630773 or  id = 

643295 or  id = 

667836 or  id = 

720533 or  id = 

732349 or  id = 

759244 or  id = 

789373 or  id = 

792593 or  id = 

793407 or  id = 

836867 or  id = 

840617 or  id = 

913377 or  id = 

978537 or  id = 

988522 or  id = 

1071365 or  id = 

1079249 or  id = 

1086032 or  id = 

1107726 or  id = 

1120802 or  id = 

1129816 or  id = 

1150948 or  id = 

1227032 or  id = 

1229731 or  id = 

1255232 or  id = 

1271458 or  id = 

1282574 or  id = 

1315504 or  id = 

1324763 or  id = 

1329772 or  id = 

1340070 or  id = 

1344655 or  id = 

1398068 or  id = 

1446426 or  id = 

1477205 or  id = 

1495992 or  id = 

1567679 or  id = 

1600071 or  id = 

1609784 or  id = 

1628393 or  id = 

1679333 or  id = 

1691855 or  id = 

1716396 or  id = 

1769093 or  id = 

1780909 or  id = 

1807804 or  id = 

1837933 or  id = 

1841153 or  id = 

1841967 or  id = 

1885427 or  id = 

1889177 or  id = 

1961937 or  id = 

2027097 or  id = 

2037082

耗時: 0.281s

結果39條

(2) inner join

查詢語句如下:

select test.networkid , test2.id

from test inner join test2

on test.id = test2.id where test2.code = 'def7414551

'

意思是通過test2的code找到test的networkid。

耗時: 663.967s

查出39條。

查詢語句如下:

select test.networkid , test2.id

from test2 inner join test

on test.id = test2.id where test2.code = 'def7414551'

意思是通過test2的code找到test的networkid。

耗時:607.324s

查出39條。

***(3)子查詢

select networkid ,id from test where id in ( select id from test2  where code = 'def7414551') 

耗時:604.142s

查出39條

查詢優化(MySQL優化查詢)

關聯查詢太多join 設計缺陷或不得已的需求 資料庫伺服器調優及各個引數設定不適當 緩衝 執行緒數等 慢查詢日誌 找出執行速度慢的sql語句 慢查詢的開啟並捕獲 explain 慢sql分析 show profile查詢sql在mysql伺服器裡面的執行細節和生命週期情況 sql資料庫伺服器的引數調...

MySQL優化 查詢優化

在每乙個消耗大量時間的查詢中,都能看到一些不必要的額外操作 某些操作被額外地重複了很多次 某些操作執行得太慢等。優化查詢的目的就是減少和消除這些操作所花費的時間。查詢效能低下最基本的原因是訪問的資料太多。所以需要考慮是否向資料庫請求了不需要的資料 1 多表關聯時,或獲取單錶資料時,盡量避免不加思考地...

mysql統計查詢優化 Mysql查詢優化

效能涉及的層面很多,但是在操作層面,主要有表結構設計優化 索引優化和查詢優化 查詢的生命週期大致可以分為,從客戶端 到服務端 在伺服器上解析 生成執行計畫 執行 返回結果給客戶端 sql執行流程 具體優化技巧 1.消除外連線 2.消除子查詢 盡量用join代替子查詢,雖說mysql查詢優化器會進行優...