2013-11-11 2 views
0

Я запускаю десять различных программ Java, чтобы вставить некоторые данные в базу данных MySQL. Все эти программы выполняются параллельно и пытаются вставлять данные в таблицу одновременно. У меня 24 ГБ оперативной памяти и процессор i7. Кажется, у меня достаточно ресурсов для использования. Как увеличить память, которую использует MySQL, и, возможно, некоторые советы по повышению общей производительности. Обратите внимание, что в конце концов мне нужно вставить записи 300M, и мне нужно будет как можно быстрее их найти.mysql insert query performance

MySQL 5,6

Благодаря

Обновление:

У меня нет индекса Я использую простые окна ПК с 24 Гб оперативной памяти и i7 3,2 ГГц я установил WampServer (MySQL 5.6 в комплекте)

мой стол, как это: идентификатор дата текст number1 number2

Мой код в Java и простых соединений с MySQL и вставки запросов

Я получаю данные с веб-страницы (простой HTML чтение)

Основной проблемой является количество записей, которое составляет около 250M

+0

Почему бы вам не бросить все индексы перед вставкой, а затем добавить индексы обратно? – AgRizzo

+0

У вас есть индексы на этом столе? Если да, то вы их бросили? – Andrew

+0

Нет У меня нет указателя на столе – ahajib

ответ

0

Мало кто из вещей, которые вы можете рассмотреть:

  • Отбросьте все индексы
  • отключить кэш запросов
  • make innodb_flush_log_at_trx_commit = 0 i.e. 0 означает запись буфера журнала в файл журнала и очистку файла журнала каждую секунду, но ничего не предпринимать при совершении транзакции.
  • disable sync_binlog. Опция sync_binlog управляет тем, как MySQL сбрасывает двоичный журнал на диск.
  • самое главное вставить первичным ключом автоматического приращения не с UUID
+0

Отключение кэша запросов полезно только для этого случая, так как я использую только вставки запросов, да? – ahajib

+0

@ nimafl nope. вам все нужно. 'insert' также принадлежит некоторой транзакции. – Trying