Mysql 使用<;在包含4.000.000行的表中
我的purchasedItems表约有400万行:Mysql 使用<;在包含4.000.000行的表中,mysql,select,Mysql,Select,我的purchasedItems表约有400万行: itemId | orderQuantity | inStockQuantity | backorderQuantity | backorderOrderedQuantity 我的问题是: SELECT * FROM purchasedItems WHERE backorderOrderedQuantity < backorderQuantity 你应该做什么: 对查询运行EXPLAIN: EXPLAIN SELECT * FRO
itemId | orderQuantity | inStockQuantity | backorderQuantity | backorderOrderedQuantity
我的问题是:
SELECT * FROM purchasedItems
WHERE backorderOrderedQuantity < backorderQuantity
你应该做什么:
EXPLAIN
:
EXPLAIN SELECT * FROM purchasedItems
WHERE backorderOrderedQuantity < backorderQuantity
解释从purchasedItems中选择*
其中BackOrderedQuantity
以确保使用索引limit 100
我已经检查过了,看起来MySQL在这样的查询中根本不使用索引,所以您可能需要创建触发器来将这些数据插入/删除到额外的表中。例如,您可以只在那里存储itemId(如果它们是唯一的)MySQL不支持使用索引进行
t1.col1
比较。已经有一些问题回答了你的问题
我想添加索引列backorder\u diff
,计算为backorderedquantity-backorderQuantity
(创建插入和更新触发器,使列保持最新,而无需您进行更多的整理),只需使用:
WHERE backorder_diff > 0
WHERE backorder_diff > 0