#mysql #excel #laravel #import #amazon-rds
#mysql #excel #laravel #импорт #amazon-rds
Вопрос:
В настоящее время для импорта всех записей в MySQL из загруженного файла Excel требуется 8 часов. Файл Excel составляет около 1 ГБ (содержит около 600 000 записей).
Мы используем массовый импорт, мы не зацикливаемся на записях.
- Что нужно сделать, чтобы ускорить это?
- Каков наилучший поворот во времени, который может быть для этого импорта?
Это приложение laravel, экземпляр RDS и компьютер EC2 (16 ГБ памяти)
Комментарии:
1. `lakh’ эквивалентно 100 000, поэтому существует около 600 000 записей (см.: Lakh
2. @Luuk Правильно, заменил 6 лакхов на 600 000 в вопросе
3. Вопрос здесь в том, что занимает время в запросе? 8 часов — это слишком много для 1 ГБ данных. Там, где я работаю, нам требуется около 8 часов для резервного копирования около 2 ТБ данных (и мы делаем это довольно неэффективно, так что даже это может быть слишком много), поэтому вам может потребоваться проверить весь ваш процесс и посмотреть, где есть узкие места. Например
INSERT INTO ...
, это будет очень медленно, потому что перед каждой вставкой будет выполняться поиск по уникальным полям для обеспечения целостности данных.4. Сохраните данные файла Excel в формате CSV, затем используйте LOAD DATA INFILE для импорта. Среднее время импорта 1 ГБ должно составлять ~ 1-5 минут.
5. Немного сложно сказать вам, что вы могли бы улучшить в своем коде, если мы не видим ваш код. На второй вопрос невозможно ответить — зависит от слишком многих факторов, включая производительность компьютера, выполняющего импорт, другие задачи, которые выполняет компьютер, Конфигурацию mysql и т. Д.