2012-09-16 67 views
1

這個查詢反向查詢:MySQL的選擇由DB物理插入

SELECT * FROM table WHERE field = 'EN' 

我想通過它實際已經被插入到數據庫修改反向(降序)選擇順序,無需使用任何索引(是這樣的: DESC NO-INDEX)?

可能嗎?

+0

@ user166489。不要認爲正確的答案只會是:)實際上,否定是正確的答案,但是你可以接受最合理的答案。 – Sami

回答

1

MyISAM存儲具有廣告訂單的商品,並用新商品填充已刪除的行(您可以在select * from ...中看到它,而無需訂購)。插入orde默認情況下未保存在數據庫中(如果要使用「自動插入」字段存儲此順序,則可以這樣做)。

INNODB按PK存儲行,所以無論何時插入行,都可以使用select ... from ... order by PK desc

1

除非您有反映物理插入順序的列,否則不能(使用索引或不使用索引)。

您只能按其包含的數據對查詢進行排序。如果您沒有存儲插入時間戳或某種形式或其他形式的ID,則無法生成您想要的訂單。

+0

MySQL表是否保存任何唯一的行ID?像RECID或ROWID被排序? –

+0

不是我所知道的。 – Mat

0

由於數據庫中的各種空間複用策略,這是不可能的。可能最接近的是讀取沒有指定任何順序的記錄,然後以相反的方向遍歷結果集。

+0

你的意思是在選擇後處理反向數組是個好主意嗎?因爲表格大約有2kk行太大... –

+0

使用'LIMIT'並一次處理一頁。 –