我不是MySQL的專家,並且我沒有找到解決方案就搜索了很多關於以下問題的內容。通過對行進行排序來優化MySQL
所以,我使用的是MySQL表採用這種結構:
CREATE TABLE photos (
file varchar(30) NOT NULL default "",
place tinytext NOT NULL default "",
description tinytext NOT NULL default "",
type char(1) NOT NULL default "",
taken year NOT NULL default "0000",
modified tinyint NOT NULL default 0,
PRIMARY KEY (file)
);
第一個參數是到一個文件中的相對路徑。它被用作主鍵。
目前,行是而不是排序(這意味着我在phpMyAdmin中觀察到的順序,默認情況下是項目插入表中的順序)。由於99%的訪問表是SELECT(插入和更新在我的程序中很少見),我想我應該在列'文件'中添加一個INDEX(幾乎所有的SELECT都只使用這一列) 。
但是,我的問題是「總是按照'文件'的字母順序存儲行,而不是創建索引會更有效嗎?」所以,「是否可以通知MySQL數據按照該順序排序,並強制它在表中插入元素時保持該順序?」。
我不確定我的問題是否真的有意義,因爲也許這只是一個特定的情況,表中已經有一種索引......但我真的很想有一個答案......
在此先感謝!
這是偉大的,如果OP是使用SQL Server ... – 2009-11-23 07:27:08
@OMG小馬:第一:在明知有關聚簇索引,即使你使用RDBMS什麼是錯,不支持他們呢? OP顯然需要一些關於關係數據庫基礎知識的幫助。第二:雖然MyISAM引擎完全不支持聚簇索引,但InnoDB將* all *表組織爲基於B樹的聚簇索引。 – 2009-11-23 09:32:20
謝謝Michael!我會嘗試聚簇索引。我確實需要在我的主鍵上! – 2009-11-23 12:20:42