У меня есть конкретная страница PHP, которая по разным причинам должна сохранять ~ 200 полей в базе данных. Это 200 отдельных операторов вставки и / или обновления. Теперь очевидное, что нужно сделать, это уменьшить это число, но, как я уже сказал, по причинам, которые я не буду беспокоить, я не могу этого сделать.
Я не ожидал этой проблемы. В MySQL операции выбора кажутся достаточно эффективными, а вставки / обновления - нет (для этого обновления требуется около 15-20 секунд, что, естественно, недопустимо). Я написал системы Java / Oracle, которые могут успешно выполнять тысячи вставок / обновлений одновременно (в обоих случаях работают локальные базы данных; MySQL 5 против OracleXE).
Теперь в чем-то вроде Java или .Net я мог бы довольно легко сделать одно из следующего:
- Записать данные в память
кэш с обратной записью (т.е.
знать, как сохранить в базе данных
и может сделать это асинхронно);
- Запись данных в кэш в памяти
и использовать PaaS (постоянство как
Сервис) модель т.е. слушатель
кеш сохранит поля; или
- Просто запустите фоновый процесс
которые могут сохранить данные.
Минимальное решение состоит в том, чтобы иметь кеш, который я могу просто обновить, который будет отдельно идти и обновлять базу данных в свое время (то есть она будет возвращаться сразу после обновления кэша в памяти). Это может быть как глобальный кеш, так и кеш сеанса (хотя глобальный кеш общего доступа привлекает другие способы).
Есть ли другие способы решения этой проблемы?