0
我有一個InnoDB,MySQL表和該查詢返回零行:爲什麼MySQL查詢返回零行,但碎片整理後它的作品?
SELECT id, display FROM ra_table WHERE parent_id=7266 AND display=1;
然而,實際上也有可以匹配的17行:
SELECT id, display FROM ra_itable1 WHERE parent_id=7266;
ID display
------------------
1748 1
5645 1
...
有上顯示的索引(INT 1 ),ID是主鍵。該表還有其他幾個字段,我不在這個查詢中。
注意到此查詢不起作用後,我對錶進行了碎片整理,然後第一個查詢開始正常工作,但只是一段時間。看起來幾天後,查詢停止再次工作,我不得不進行碎片整理來修復它。
我的問題是,爲什麼碎片表打破了這個查詢?
附加信息:Amazon RDS上的MySQL 5.6.27。
CREATE TABLE `ra_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(6) NOT NULL,
`display` int(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `parent_id` (`parent_id`),
KEY `display` (`display`),
) ENGINE=InnoDB AUTO_INCREMENT=13302 DEFAULT CHARSET=latin1
ROW_FORMAT=DYNAMIC
我們知道DIDELY-SQUAT關於你的桌子設計/系統/等等。所以你希望有一個千里眼通過並回答這個問題 – RiggsFolly
請閱讀[我可以問哪些主題](http://stackoverflow.com/help/on-topic) 和[如何提出一個好問題]( http://stackoverflow.com/help/how-to-ask) 和[完美的問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) 以及如何創建一個[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) [和參觀](http://stackoverflow.com/tour) – RiggsFolly
我想我真正的問題是,這是正常的嗎?我沒有在線閱讀關於碎片化MySQL表格的信息,說明它們會影響查詢結果。只是它佔用存儲空間...... –