我的MySQL表中有一個BIT類型的字段。我想存儲使用位值的記錄的狀態,例如:當使用按位函數查詢BIT字段時,MySQL不使用索引
1 = status1
2 = status2
4 = status3
8 = status4
每個記錄可以同時有很多狀態。對於STATUS1和STATUS3的值將是1 + 4 = 5我可以查詢表用於使用與STATUS3所有記錄:
SELECT *
FROM `table`
WHERE `statuses` & 4
我有索引上statuses
,但EXPLAIN
告訴沒有索引被使用。我可以在這種情況下使用索引嗎?
P.S.使用單獨的多對多鏈接表是更規範化的解決方案,但我想爲此有更多的「扁平」結構。
索引的存在並不意味着優化器會選擇使用它。 – 2010-08-24 19:59:52
你可能會發現這個線程很有用:[MySQL Forums :: Performance ::是可能的按位比較的索引掃描](http://forums.mysql.com/read.php?24,35318,35318#msg-35318) – Mike 2010-08-24 20:03:27
我會在表格中看到很多值,我需要確保表格增長時不會有問題,任何提示如何檢查? – artvolk 2010-08-24 20:05:44