一次同事反映說他有一條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...