Какой результат следует ожидать от длинного SQL-запроса из таблицы, которая обновляется очень часто? - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть база данных с таблицей с более чем 300ми записями.Существует около 300 вставок в минуту,

Очень часто Нам нужно получить статистические данные.(количество, сумма в среднем).Каждый запрос занимает от 10 до 30 секунд.

С начала запроса до его конца данные таблицы увеличиваются более чем на 100 записей.

Числа, которые я получаю из статистического запроса, относятся к началу запроса или к егоконец?

Я использую mysql и innodb

1 Ответ

0 голосов
/ 19 сентября 2018

Независимо от уровня изоляции транзакции (например, repeatable-read или read-commit) любой отдельный запрос SQL к таблицам InnoDB получает своего рода «снимок» или согласованное представление базы данных.

A *Запрос 1003 * не будет блокировать одновременные вставки или обновления, но эти вставки или обновления не будут влиять на результат запроса SELECT.Он будет «видеть» данные в том виде, в каком они существовали при начале запроса SQL.

Если вы используете уровень изоляции транзакции с повторяющимся чтением, все запросы в транзакции, включая потенциально несколько SELECT запросов (по крайней мере, не блокирующих запросов), видит непротиворечивый снимок данных, даже если одновременные вставки продолжаются.

...