Чому “LIMIT 0, 10” працює блискавично швидко, а “LIMIT 1000000, 10” тягнеться, як вічність!

Уявіть, що ви в бібліотеці і запитуєте перші 10 книг на полиці. Легко, правда? Тепер уявіть, що ви просите 10 книг, але тільки після того, як пропустите перші 1 мільйон! Здається, виснажливо, правда? Саме це відбувається в базах даних, коли ви використовуєте LIMIT 0, 10 порівняно з LIMIT 1000000, 10. Давайте розберемось!

pic

Фото Антуана Грав'є на 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!

Leave a Reply

Your email address will not be published. Required fields are marked *