Я читал о «COUNT (*), где предложение« невероятно медленно в PostgreSQL ». И, исходя из MySQL, я не знаю, смогу ли я жить, не используя его снова. Я также прочитал, что даже если вы добавите предложение «где», ему придется сканировать каждую строку из результата, которая будет медленной, если у вас мало результатов. Я видел, что есть сумасшедшие хаки, использующие триггеры и дополнительные таблицы, но мне не нравится, как это выглядит. Я имею в виду, что я новичок в этой СУБД, просто начал использовать базовые функции и уже должен использовать обходные пути?Как правильно считать() в PostgreSQL?
Примером того, что мне нужно сделать, является создание механизма защиты от наводнений. Что-то вроде if "count(id) where ip = 1.2.3.4" > 100, fail instead of insert
.
Так что мои вопросы:
- Является ли это еще нерешенная проблема?
- Будет ли иметь значение, если вместо этого я использую COUNT (id) или добавлю какое-то предложение вроде DISTINCT?
- Как пользователи PostgreSQL выживают без учета?
О, я вижу, отлично! Если MySQL не имеет преимущества при использовании «где», я думаю, я буду просто прекрасным =) – ChocoDeveloper