У меня есть база данных событий, которая обновляется каждую ночь.Одно событие содержит информацию в трех (или более) таблицах.Недавно объем обновлений привел к тому, что мой движок MySQL стал очень медленным до такой степени, что мои другие запросы зависали во время вставки новых событий.Чтобы ускорить процесс, я хочу сделать серию пакетных запросов вместо того, чтобы выполнять каждый из них по отдельности, что, как мне кажется, является большой частью накладных расходов.
Проблема заключается в том, что данные распределяются подля нескольких таблиц это то, что я должен сделать, чтобы вставить одно событие:
(in Mysql) INSERT INTO 'locations' (...) VALUES (...) ON DUPLICATE KEY UPDATE ...
(in php get the last inserted id into variable $locationID)
(in Mysql) INSERT INTO 'event_info' (...) VALUES ($locationID, ...) ON DUPLICATE KEY UPDATE...
(in php get the last inserted id into variable $eventID)
(in Mysql) INSERT INTO 'event_times' (...) VALUES ($eventID, ...) ON DUPLICATE KEY UPDATE...
Я не ищу помощи в разработке таблиц, но, как вы можете видеть, чтобы вставить одно событие, требуется как минимум тривставляет , каждый из которых зависит от получения идентификатора от предыдущего. Вот почему я не знал, с чего начать, чтобы превратить это в пакетный запрос.Любая помощь по проектированию этого процесса в пакетный запрос была бы потрясающей, спасибо!
РЕДАКТИРОВАТЬ: Возможно, я уже имел информацию о местоположении или о событии ранее, и именно поэтому ON DUPLICATE KEY UPDATEчасть есть, так что если она уже была в базе данных, я получаю старый идентификатор.Я не знаю до вставки, если это новые данные или если они уже существуют в базе данных.(из-за этого, если я не неправильно понял, я не могу делать вещи, которые предварительно распределяют идентификаторы, так как каждый раз это принимает новый идентификатор.)