2014-04-15 4 views
-2
select * from User where id>=0 and id<=10000 

иЗадать вопрос MySQL выберите

select * from User where id=0 
select * from User where id=1 
select * from User where id=2 
... 
select * from User where id=10000 

Есть ли большая разница о времени или стоимости памяти между этими двумя способами?

+0

Ну, в первом случае вы делаете только 1 запрос, а во втором вы делаете тысячи! Конечно, есть ... –

+0

В чем смысл вашего вопроса? Должно быть очевидно, что набирать 10k строк кода по сравнению с типизацией 1 строки кода и спрашивать, что лучше, является риторическим, так что ваш основной пункт? –

+0

Это не стоит того, чтобы сделать такую ​​оптимизацию. Вы можете проверить это, добавив «объяснять» перед запросом. Например. Объясните select * от пользователя, где id> = 0 и id <= 10000 –

ответ

0

Рассмотрите возможность загрузки данных, а не загружайте (почти) все сразу или по одному, попробуйте загрузить их по 10 или 100 записей за раз, хотя вам придется запускать более одного запроса, производительность улучшится ... как @ steve-horvath рекомендуется, пожалуйста, запустите некоторый бенчмаркинг, чтобы точно знать, какое максимальное количество записей загружается за раз.

select * from User where id between 0 and 100 
select * from User where id between 101 and 200 
select * from User where id between 201 and 300 
... 
0

Это зависит от таблицы пользователя, но обычно размер памяти для строк 10k не так уж плох.

Я рекомендую попробовать и сравнить его, если вы действительно заинтересованы.

Смежные вопросы