偶然間的發現,索引不起作用以及強制使用索引

2021-09-25 22:48:16 字數 913 閱讀 5682

一次同事反映說他有一條sql的處理時間很長,快20s才能處理完

如圖:

查詢時間為19s,

最外層dg_pushcert表的資料量為10w多,資料量不是很多。

此時想到的就是索引問題。之後,同事加上索引以後,發現沒什麼變化,還是原來的處理時間。這就蒙了。

單拿出來

select date,`to`,usrid,`status` from dg_pushcert force index ( pushcert_date ) where date between "2019-08-04 00:00:00" and "2019-08-06 00:00:00"
發現這塊就很耗時,所以就猜到了date這個索引是沒有用上的。使用explain一看,果然

走的全表掃瞄,並沒有用上建立的date索引。

原因是   (查詢的數量是大表的大部分,應該是30%以上。)顯然沒有達到,所以只能強制使用索引了

此時級別為range

從19s變成0.4s效果很顯著吧。

偶然發現安裝jre可選的引數

windows r installer.v 3.01.4000.1823 msiexec option optional parameter 安裝選項 安裝或配置產品 a 管理安裝 在網路上安裝產品 j t g 播發產品 m 播發到所有使用者,u 播發到當前使用者 解除安裝產品 顯示選項 quiet...

偶然發現 迭代器的自增與解引用(指標)

在c primer第四版中,有這樣一節 vector迭代器的自增和解引用運算。迭代器使用自增操作符 向前移動迭代器指向容器中下乙個元素。ok,這沒什麼問題。但是在note裡,它是這樣說的,由於end操作返回的迭代器不指向任何元素,因此不能對它進行解引用或自增操作。也就是說 vector iterat...

不走索引的原因

補充 不走索引的原因,甚至加上hint 還不走索引,那可能是因為你要走索引的這列是nullable,雖然這列沒有空值。將字段改為not null 備註 不走索引的其它原因1 建立組合索引,但查詢謂詞並未使用組合索引的第一列,此處有乙個index skip scan概念。2 在包含有null值的tab...