Библиотека программиста | программирование, кодинг, разработка
83K subscribers
3.83K photos
176 videos
89 files
6.88K links
Все самое полезное для программиста в одном канале.

По рекламе: @proglib_adv

Курс по ML: https://clc.to/eLH_zQ

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5ba2901234b69883a4d46
Download Telegram
🔐 Угадайте 3 термина, зашифрованных в эмодзи

Сможете разгадать?

🐸 Библиотека программиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔103👍2
🧐 Почему COUNT(*) может быть медленнее, чем COUNT(col)?

Когда мы делаем запросы в базу данных, часто используем COUNT(*), чтобы подсчитать количество строк. Но вот вопрос — почему иногда запрос с COUNT(col) может быть быстрее?

🤔 Вот в чем разница:

- COUNT(*) считает все строки в таблице, включая те, где колонка может быть пустой (NULL). Он не обращает внимания на данные, а просто проверяет, есть ли строка.

– COUNT(col) считает только те строки, где в колонке есть значение (то есть не NULL).

Почему COUNT(*) может быть медленнее?

– MVCC в PostgreSQL: Это механизм, который помогает работать с транзакциями. Он создает несколько версий строк, чтобы каждая транзакция могла видеть корректные данные. Из-за этого COUNT(*) требует больше вычислений.

– Visibility Map: Это карта, которая помогает базе данных понять, какие строки можно игнорировать при подсчете. Но COUNT(*) проверяет все строки, даже те, которые могут быть невидимы для некоторых транзакций.

🔍 Как ускорить запросы?

Если на колонке есть индекс, то запрос с COUNT(col) может работать быстрее, потому что индекс помогает быстро найти строки с непустыми значениями.

🐸 Библиотека программиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🌚31