Я искал решение для этого, но, увы, не было ничего.MYSQL large LIMIT offset
В настоящее время мой стол толкает 5 800 000 рядов, из 5000 различных источников. Например:
CREATE TABLE stores(
store_id INT UNSIGNED PRIMARY_KEY AUTO_INCREMENT,
name VARCHAR(255)
);
CREATE TABLE articles(
article_id INT UNSIGNED PRIMARY_KEY AUTO_INCREMENT
article_name CHAR(80),
article_price INT UNSIGNED,
store_id INT UNSIGNED
);
Ok, так что я сделал индексы, как так:
CREATE INDEX article ON articles(store_id,name);
И я думал, что я сделал это пуленепробиваемым, угадай нет.
Когда я поиск больших наборов данных, 200 000 статей, им выдающие:
SELECT article_name,
article_price
FROM articles
WHERE store_id = $id
ORDER BY article_name
LIMIT 100000,20;
и получать очень большие времена ответа. Помоги пожалуйста? : S
В основном эта таблица разгорается весь день. 24/7 У меня есть вставки и обновления. У меня есть глобальный индекс для article_name, а не для store_id. Я не думаю, что отдельный индекс id будет делать что угодно. Я использую таблицу myisam, это хорошая идея, потому что она использует блокировку таблиц, это то, что возится с моей работой? Повторяю, таблица постоянно обновляется и имеет много вставок в день. EDIT: я включена медленный запрос, и это то, что я получаю # Query_time: 7 Lock_time: 0 Rows_sent: 24 Rows_examined: 8224 Btw, коробка VPS с XEON E5520, но у меня есть только 2 центрального процессора сердечников и 3 ГБ ОЗУ. – Rob 2010-12-10 10:13:47