假設訂單業務表結構為:
order(oid, date, uid, status, money, time, …)
其中:
假設訂單有三種狀態:
0已下單,
1已支付,
2已完成
業務需求,查詢未完成的訂單,哪個
sql更快呢?
結論:方案1最慢,方案2,3,4都能命中索引
但是...
一:union all
肯定是能夠命中索引的
select * from order where status=0
union all
select * from order where status=1
說明:
二:簡單的
in能夠命中索引
select * from order where status in (0,1)
說明:
三:對於
or,新版的
mysql
能夠命中索引
select * from order where status=0 or status=1
說明:
四、對於
!=,負向查詢肯定不能命中索引
select * from order where status!=2
說明:
五、其他方案
select * from order where status < 2
這個具體的例子中,確實快,但是:
六、作業
這樣的查詢能夠命中索引麼?
注:此為示例,別較真
sql對應業務的合理性。
or in union與索引優化
一 union all 肯定是能夠命中索引的select from order where status 0 union allselect from order where status 1union 操作符用於合併兩個或多個 select 語句的結果集。預設地,union 操作符選取不同的值。如...
mysql的恢復 MYSQL的恢復
恢復就簡單多了!只要執行該備份檔案就行了,該備份檔案是sql哦!恢復完全備份mysql uroot p backup.sql 就這麼簡單!恢復增量備份mysqlbinlog mysql bin.000002 mysql u root p 注意此次恢復過程亦會寫入日誌檔案,如果資料量很大,建議先關閉日...
mysql的查詢日誌 mysql
這篇文章總結了mysql中查詢日誌的知識點。mysql中,日誌可以按照功能分為如下幾類。錯誤日誌 查詢日誌 慢查詢日誌 二進位制日誌 中繼日誌 innodb儲存引擎級別的事務日誌 查詢日誌 查詢日誌在mysql中被稱之為general log 通用日誌 不要被 查詢日誌 的名字誤導,錯誤的以為查詢日...