mysql使用優化記錄

2021-09-16 19:37:14 字數 947 閱讀 2533

使用in語句,in的列表明確並且有限時,可以使用。因為此時搜尋引擎會使用索引,但in的是乙個查詢結果時,索引將會沒有作用,會查詢全表。

例子:使用in查詢時,in的列表有限且明確

select

*from

`on_auction`

where

`pid`in(

10,11,

20);

此時的執行計畫,會使用建立在pid上的索引

;此時的執行計畫,可以看到對於主表是全表查詢的,索引也沒有使用

這種情況下,可以使用join的方式進行優化

優化完可以看到,此時已經不會全表查詢,而是使用了索引

所以綜上所述,in也可以使用,但是在不同的使用情況時要做優化,否則會全表查詢

注:上述所有的執行計畫是基於阿里雲的dms處理的。

mysql優化記錄

一.建立索引 索引的分類 1.新增primary key 主鍵索引 alter tabletable nameadd primary key column 2.新增unique 唯一索引 alter tabletable nameadd unique column 3.新增index 普通索引 寫法...

mysql反查優化記錄

id name source 1客戶1 a渠道2 客戶1b渠道 3客戶2 a渠道4 客戶3a渠道 5客戶1 c渠道我現在的邏輯是根據傳進來的id查詢name,然後再根據name來查詢id 例如 傳進來id是1和3,根據這兩個id查到name值為客戶1和客戶2,然後根據這兩個name去查詢id,可得到...

mysql優化記錄2

上次優化完之後,發現又有其他比較慢的地方,就需要再次優化。這次優化主要是加索引解決的。以及刪除了一大部分資料。優化的過程中遇到了很多問題,比如線上加索引,線上刪除資料之類的,盡量做成指令碼,晚上去更新。因為公司的服務是兩台伺服器,主從伺服器。修改了任何一台,另一條是會在sql執行完成之後,進行主從同...