основном читается, таблица статистики продаж у бизнеса.
иногда движений у бизнеса нет, те нет ни продаж ни возвратов - тишина.
в историю все равно пишетя строка, но со всеми нулями по основным показателям.
эта таблица уходит на фронт (веб интерфейс) почти неизменно.
поступила задача не показывать строки, когда все по нулям.
подскажите как оптимальнее будет сделать выборку?
1) написать кучу where .. > 0 на каждый столбик
2) или как-то агрегировать sum(...) в новый столбик и фильтануть его sum > 0?
на столбиках с нулями индексов нет, индексы только на столбике с датой и с id-товара
А в колонках отрицательные значения невозможны?
А каково соотношение количества "ненулевых" строк к общему? Решение определяется этим, на самом деле. И нужно указать конкретную СУБД
80 на 20 наврное в пользу НЕ нулевый, mysql
а расскажите поподдробее как решение определяется, при 80 на 20 или 20 на 80, какая тут логика выбора решения?
То есть ненулевых строк 4 из 5?
угу +- (нулевых мало, мало когда у бизнеса тишина по продажам)
Для 20 на 80 можно думать о снижении стоимости full scan индексацией. Для 80 на 20 можно особо не морочиться
Обсуждают сегодня