Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 15920|Відповідь: 1

[Джерело] Неправильне розуміння count(0) та count(*) у SQL-операторах

[Копіювати посилання]
Опубліковано 10.08.2017 13:29:00 | | |
Останнім часом числова функція використовується дуже часто, і коли кількість для підрахунку відносно велика, виявляється, що count(*) займає більше часу, а count(1) — менше.

Деякі документи містять такі твердження:

Якщо у вашій таблиці даних немає первинного ключа, тоді count(1) швидший за count(*).  
Якщо є первинний ключ, то первинний ключ (спільний первинний ключ) також швидший за count(*).  
Якщо у вашій таблиці лише одне поле, тоді count(*) — найшвидше  
count(*) count(1) Порівняйте ці два варіанти. Головне — підрахувати поля даних, що відповідають (1).  
Якщо count(1) — це полііндекс, id, то він має бути швидшим count(1). Але різниця дуже мала.  
Оскільки count(*), поле автоматично оптимізується для вказівки до. Тож немає потреби рахувати(?), використовувати count(*), SQL допоможе вам завершити оптимізацію

  Деталі підрахунку:
count(*) поверне загальну кількість усіх рядків у таблиці, включаючи рядки з нульовим значенням,Однак count (назва стовпця) поверне загальну кількість усіх рядків у таблиці, крім null(Також враховуються стовпці з значеннями за замовчуванням).
Різна назва стовпця, результатом буде результат після видалення нульового значення та дублікатів даних


Раніше я не знав, що в блозі сказано, що всім рекомендують використовувати count(0) і що ефективність запитів досить висока тощо

Сьогодні встановлено, що використання count(0) є хибним уявленням!!
count(0) Перший стовпець статистики не є порожнім

Не використовуйте number(назва стовпця) або count(константа) замість count(*),

count(*) — це синтаксис для стандартної кількості рядків, визначених SQL92, який не має нічого спільного з базою даних, NULL і не-NULL.

Примітка: count(*) рахує рядки з NULL-значенням, тоді як count(назва стовпця) не рахує рядки з NULL-значенням.

Тому в майбутньому, коли ви робите всю статистику і не виключаєте порожні дані, краще чесно використовувати кількість (*)!!








Попередній:Різниця між змінними визначення let і var у js
Наступний:Jquery реалізує таблицю для відображення до 10 частин даних
Опубліковано 10.08.2017 13:54:00 |
Викладав                 
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com