Я действительно новичок в MySQL и только начал использовать движок таблицы InnoDB на своем VPS.Оптимизация innoDB, но мои вставки ждут друг друга
Информация о сервере: 4 x 2.4 ghz, 8 Gb ram, 120gb Raid10.
My.cfg:
[mysqld]
innodb_file_per_table=1
innodb_buffer_pool_size=4G
innodb_log_file_size=512M
innodb_flush_log_at_trx_commit=2
Таблица для вставки имеет 6 Интс и 1 дату и 1 триггер для отображения -> вставляет 1 строку для каждой строки в таблице отображения.
Последняя строка помогает ускорить вставку (база данных составляет 80% вставки/обновления против 20% чтения).
Но когда я делаю некоторые тесты, я вызываю PHP-файл в веб-браузере, который будет делать 10 000 вставок, это занимает около 3 секунд (это быстро/медленно для этого оборудования?). Но когда я открываю несколько вкладок и одновременно открываю PHP-файл, у всех их есть время выполнения 3 секунды, но они ждут друг друга:/
Любые идеи, какие настройки я должен добавить? Или другие настройки, которые я должен добавить для более быстрых вставок, очень ценятся!
Да, это так! Я использую транзакции, черт возьми, это было глупо с моей стороны, чтобы забыть! Но будет ли это быстрее, если я буду использовать autocommit? Когда пользователи войдут в веб-приложение, я сделаю около 200-300 вставок (только в первый раз они используют приложение). –
Нет, не используйте autocommit. Вместо этого сделайте явное коммит после куска вставок. 200-300 вставок подходят для размера блока. –
большое спасибо! что helpen, я делал вставки 10k для тестирования, но когда приложение выйдет вживую, у каждого нового пользователя будет 200-300 вставок. –