90 человек, по этому попробую тут спросить:
долго отрабатывает count(*) что бы узнать количество записей в таблице, какие могут быть альтернативы?
надо узнать сложность запроса и скорее всего поместить в индекс юзай explain для того чтобы посмотреть насколько заюзал запрос индексы
а если сделаешь count(id)?
Через explain запрос посмотри
count(id)
вот здесь достаточно подробно описано https://ruhighload.com/Индексы+в+mysql
не думаю что это сильно поможет, насколько помню сам mysql count(*) оптимизирует + MyISAM вообще быстрее обработает count(*)
ну, что быстрее выбрать всю колонку или только 1 столбец? )
Одинаково должно быть.
Уточни как именно используешь count(*) ? Получаешь количество записей в контексте определенных фильтров или делаешь агрегацию количества записей с группировкой по определенным полям?
Select count(id) То есть делай count по одному столбцу, желательно по тому для которого индекс создан, тогда вообще таблица дергаться не будет
Не одинаково 100%, В таблице в 2 столбца (id и text) на 1000 строк, где текст размером 1мб в каждой строке. При выборе всех id считаются 10ки кб с диска, а при выборе обоих столбцов - 1 гиг, так что быстрее отработает?)
Точно не одинаково, можно проверить таблице с 2мя столбцами (id и text) где текст домустим по 1мб,
давай проверю
поделись, как глянешь
Я не про count писал, а про разницу между выбором всех столбцов для N строк и одного столбца для N строк С count сложнее проверить, могут влиять индексы, еще что, в доках рекомендуют указывать столбец, т.к. оптимизатор не всегда может это сделать
Кто сказал что нужно читать с диска?
так просто розговор изначально был про count
Обсуждают сегодня