Предположим, у меня есть таблица пользователей с 1M пользователей MySQL/InnoDB:InnoDB и count: Помогают ли столы-помощники?
пользователей
- идентификатор пользователя (первичный ключ, Int)
- статус (Int)
- больше данных
Если бы я хотел иметь точный подсчет количества пользователей с status = 1
(обозначая активацию учетной записи), каким будет путь для больших таблиц, я был думать вдоль линий:
usercounts
- статус
- Количество
А затем запустить TRIGGER AFTER INSERT
на users
, который обновляет наши правила столбцов в usercounts
ли это быть лучший способ пойти?
пс. Дополнительный небольшой вопрос: Так как вы нуждаетесь в TRIGGER AFTER UPDATE
на users
для того, когда status
изменений, есть синтаксис, который может:
- охватывает как
TRIGGER AFTER INSERT
иTRIGGER AFTER UPDATE
наstatus
? - Добавляет
count
к одному, еслиcount
уже есть, еще вставляет новую пару(status, count = 0)
?
Как часто строки быть сгенерированные/обно в таблице 'users'? Каковы допустимые значения статуса? Только '0' и' 1' или есть другие? – peterm
@peterm Это просто концептуальный пример, но примером может быть статус: 1 = ok, 2 = deleted, 3 = banned. И вставки будут происходить только раз в то время, обновления, однако, будут происходить довольно много, но не в самом поле 'status'. – skiwi