2012-04-05 3 views
0
create table foo (id int(11) auto_increment, value varchar(255)) 

Таблица содержит около 10,00,000 строки и выберите операции, как выберите идентификатор, значение из обува занимает около 2-3 секунд для выполнения, как я могу улучшить скорость здесьКак улучшить скорость выполнения на операции выбора

+0

"select id, value from foo" ... без предложения where? –

+0

no where статья – Sam

+0

«Ну, вот ваши проблемы!» - Adam Savage –

ответ

2

выберите идентификатор, значение из Foo собирается вернуть всю таблицу. Через 2-3 секунды вы можете указать время, необходимое для передачи ваших результатов. Это часто может быть намного дольше, чем сервер базы данных для выполнения реального запроса.

0

Добавьте индекс в поля, используемые в предложении where.

1

Если нет предложения WHERE (например, запрос, который вы опубликовали), и вы выбираете миллион строк, есть хорошая вероятность, что вместо того, чтобы запрос занимает 2-3 секунды для его выполнения, на самом деле требуется время для отправки данные по сети.

Может ли ваше приложение фактически использовать миллион записей базы данных сразу? Если вы показываете эти данные пользователю, вы, скорее всего, будете его подкачкой, поэтому измените свой запрос, чтобы выбрать данные в более управляемых фрагментах.

SELECT id, value 
FROM foo 
LIMIT $offset, $pgsize -- these two values will come from your application 

Если вам действительно нужны все эти строки сразу, я предлагаю вам их кешировать.