在專案中由於查詢條件異常繁雜,導致sql不會走索引問題解決啟發聯想比如查詢兩個條件,增加 or 這樣就倒是這個不走索引
so 直接上**
$model =
(new \yii\db\query()
)->
select
("id,username,first_uid,second_uid,created_at")-
>
from
('prefix_member force index(first_uid)')-
>
where([
'first_uid'
=>
'smith'])
->
limit(10
)->
all(
);
其次總結:
快取需要考虛實際場景,比如使用者id,操作,tab切換、搜尋條件等。
SQL 優化之該走索引卻不走索引的分析(二)
sql優化器簡介 基於規則的優化器 總是使用索引 總是從驅動表開始 from子句最右邊的表 只有在不可避免的情況下,才使用全表掃瞄 任何索引都可以 基於成本的優化器 需要表 索引的統計資料 analyze table customer compute statistics analyze table...
不走索引的原因
補充 不走索引的原因,甚至加上hint 還不走索引,那可能是因為你要走索引的這列是nullable,雖然這列沒有空值。將字段改為not null 備註 不走索引的其它原因1 建立組合索引,但查詢謂詞並未使用組合索引的第一列,此處有乙個index skip scan概念。2 在包含有null值的tab...
mysql不走索引總結
在mysql查詢語句中,總會發現明明已經建立了查詢字段索引,可是卻沒有用到,這是因為在mysql中有些查詢語句是用不到索引的,總結如下,以供大家分享。1.like語句 2.列型別為字串型別,查詢時沒有用單引號引起來 3.在where查詢語句中使用表示式 4.在where查詢語句中對字段進行null值...