我有一個客戶希望我爲他的網站做一個後端。他需要一張表格來顯示所有帶分頁的文件。如何優化排序和限制?
CREATE TABLE `content_files` (
`id` varchar(16) NOT NULL,
`owner` varchar(16) DEFAULT NULL,
`location` varchar(16) NOT NULL,
`parent` varchar(16) DEFAULT NULL,
`date` int(11) NOT NULL,
`filename` varchar(256) NOT NULL,
`username` varchar(64) NOT NULL,
`email` varchar(256) NOT NULL,
`ip` varchar(15) NOT NULL,
`json` text NOT NULL,
`bin` blob NOT NULL
);
ALTER TABLE `content_files`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `ID` (`id`),
ADD KEY `id_2` (`id`),
ADD KEY `date` (`date`),
ADD KEY `filename` (`filename`(255)),
ADD KEY `username` (`username`(63)),
ADD KEY `email` (`email`(255)),
ADD KEY `ip` (`ip`(14));
需要排序的項目是日期,文件名,用戶名,電子郵件和IP。目前有65,000條記錄。如果極限高,如預期的那樣需要更長的時間,但是它非常長。 100秒獲得第60,000條。
我只是用:
SELECT id, date, filename, username, email ip
FROM content_files
ORDER BY filename
LIMIT 60000, 20
找遍了這個問題,但是,沒有任何提示似乎改善我的查詢。在他的模式中是否有一些明顯的錯誤?我怎樣才能優化這個?
InnoDB?顯示'EXPLAIN'結果。 – 2015-02-07 18:54:10