2013-12-06 2 views
0

Я хотел знать, что является лучшим способом запускать инструкции insert в СУБД.Вставка Msql, выбор наилучших методов

  • Что лучше первый магазин все ценности, которые вы говорите, слом с веб-сайта в качестве, как структура данных ArrayList?

  • Или лучше сделать это в цикле, вызвав инструкцию insert для каждой строки данных? Первый подход займет некоторую память, но будет поддерживать соединение открытым для сравнения, меньше времени, чем второй подход.

  • Кроме того, хорошо ли закрыть соединение в конце каждой итерации цикла while? Или лучше держать соединение открытым в течение всего цикла и закрывать его один раз в конце?

Пожалуйста, помогите мне в ответе на эти вопросы.

ответ

1

На ваши вопросы нет окончательных ответов. Это зависит от по нескольким причинам. Упомянем лишь некоторые из них:

  • Что двигателя вы используете
  • Какую версию MySQL вы на
  • Как MySQL настроен
  • Сколько строк вы вставив
  • Как сколько индексов у вас есть в целевой таблице?
  • т.д.

Вот хорошее чтение Speed of INSERT Statements.Вот короткая выдержка:

Время, необходимое для вставки строки определяется следующими факторами, где цифры указывают приблизительные пропорции:
- Подключение: (3)
- Отправка запроса к серверу: (2)
- Синтаксический запрос: (2)
- Вставка строки: (1 × размер строки)
- Вставка индексов: (1 × количество индексов)
- Закрытие: (1)

Поэтому вот несколько советов, если вы заботитесь больше всего о скорости вставки не о параллельности:

  • Сведите количество туда и обратно в базу данных (соединения) до минимума, предпочтительно один
  • Держит количество вставных заявлений до минимума, предпочтительно один
  • при использовании нескольких операторов INSERT рассмотреть, чтобы обернуть их всех или партии в (а) сделки (сделок)
  • Если вы выдаете ВСТАВОК используется петлевой подготовленные заявления
  • Учиться и использовать оптимизацию, специфичную для двигателя вы используете
  • В некоторых случаях, когда вы делаете много вставок может быть полезным падение индексов до и восстановить их после того, как вы сделали со вставками
Смежные вопросы