Spec-Zone .ru
спецификации, руководства, описания, API
|
Чтобы оптимизировать вставляют скорость, комбинируют много маленьких операций в единственную большую работу. Идеально, Вы делаете единственное соединение, отправляете данные за многими новыми строками сразу, и задерживаетесь, все индексируют обновления и непротиворечивость, проверяющую до самого конца.
Время, требуемое для того, чтобы вставить строку, определяется следующими факторами, где числа указывают на приблизительные пропорции:
Соединение: (3)
Отправка запроса к серверу: (2)
Парсинг запроса: (2)
Вставка строки: (1 × размер строки)
Вставка индексирует: (1 × число индексирует),
Закрытие: (1)
Это не учитывает начальные издержки, чтобы открыть таблицы, который делается однажды для каждого одновременно рабочего запроса.
Размер таблицы замедляется, вставка индексирует журналом N
, принятие
B-дерева индексирует.
Можно использовать следующие методы, чтобы убыстриться, вставляет:
Если Вы вставляете много строк от того же самого клиента одновременно, использовать
INSERT
операторы с многократным VALUES
списки, чтобы вставить несколько строк за один раз. Это значительно быстрее (много раз быстрее в
некоторых случаях) чем использование отдельной единственной строки INSERT
операторы. Если Вы добавляете данные к непустой таблице, можно
настроиться bulk_insert_buffer_size
переменная, чтобы сделать вставку данных еще
быстрее. См. Раздел 5.1.4, "Системные Переменные Сервера".
Загружая таблицу из текстового файла, использовать LOAD DATA INFILE
. Это обычно в 20 раз быстрее чем использование INSERT
операторы. См. Раздел
13.2.6,"LOAD DATA INFILE
Синтаксис".
Используйте в своих интересах факт, что у столбцов есть значения по умолчанию. Вставьте значения явно только, когда значение, которое будет вставлено, отличается от значения по умолчанию. Это уменьшает парсинг, что MySQL должен сделать и улучшает скорость вставки.
См. Раздел 8.5.4, "Объемные
Данные, Загружающиеся для InnoDB
Таблицы" для подсказок,
определенных для InnoDB
таблицы.
См. Раздел 8.6.2, "Объемные
Данные, Загружающиеся для MyISAM
Таблицы" для подсказок,
определенных для MyISAM
таблицы.