Уявіть, що ви в бібліотеці і запитуєте перші 10 книг на полиці. Легко, правда? Тепер уявіть, що ви просите 10 книг, але тільки після того, як пропустите перші 1 мільйон! Здається, виснажливо, правда? Саме це відбувається в базах даних, коли ви використовуєте LIMIT 0, 10
порівняно з LIMIT 1000000, 10
. Давайте розберемось!
Фото Антуана Грав'є на Unsplash
Що таке LIMIT
?
LIMIT
— це SQL-команда, яка вказує базі даних, скільки рядків треба повернути.LIMIT 0, 10
означає "дайте мені перші 10 рядків."LIMIT 1000000, 10
означає "пропустіть 1 мільйон рядків, а потім дайте наступні 10."
Чому LIMIT 0, 10
швидкий?
- База даних повинна знайти лише перші 10 рядків і зупинитись. Це як зняти перші 10 книг з полиці — швидко та легко!
Чому LIMIT 1000000, 10
повільний?
- База даних повинна переглянути 1 мільйон рядків, перш ніж почати рахувати наступні 10. Це як попросити бібліотекаря пропустити 1 мільйон книг, перш ніж вибрати 10 — це займає багато часу та зусиль!
Секретний інгредієнт: Індекси та оптимізація
- Бази даних використовують індекси (як зміст), щоб швидше знаходити дані. Але навіть з індексами, пропуск 1 мільйона рядків — це важке завдання.
- Порада: Використовуйте ключі для пагінації (наприклад, стовпець
id
), щоб безпосередньо перейти до потрібних даних, замість того, щоб пропускати рядки.
Пам'ятайте, бази даних — це як бібліотеки: знання, як правильно запитати дані, робить величезну різницю. Удачі в запитах!
Перекладено з: Why “LIMIT 0, 10” is Lightning Fast, but “LIMIT 1000000, 10” is a Slow Crawl!