$offset = SELECT FLOOR(RAND() * COUNT(*)) FROM t_table
SELECT * FROM t_table WHERE LIMIT $offset,1
這的MyISAM的偉大工程,但我想這個表更改爲InnoDB的(所有其他數據庫表是InnoDB的)拿外國鍵的優點,避免表級別鎖定。隨機行查詢優化
此表的primaryId字段是VARCHAR(10)
我不能「強制」數字AUTOINC標識,因爲記錄被刪除/添加了所有的時間和隨機(MIN(ID) MAX(Id))預測可能會錯過很多次。
我該如何優化這個查詢到innodb?
在此先感謝!
Arthur
這是我第一次嘗試,但表變得更大,我不得不用問題上的查詢替換它 – arthurprs 2010-03-04 23:23:26