2012-09-23 2 views
5

Какова временная сложность простых операторов SQL, таких как следующее?Сложность времени запроса SQL

INSERT into table (col1, col2, col3) values ("a", "b", "c") 

Как это зависит от следующих факторов:

  1. размер таблицы
  2. типа данных из col1, col2
  3. количество столбцов в таблице именно. col1, col2, col3 и т. д.

От этого зависит, пользуюсь ли я MyISAM или InnoDB?

+0

+ 4. Индексы на столе – biziclop

+2

еще одна вещь, не используйте двойные кавычки '' 'вокруг значений, но вместо этого используйте одиночную кавычку' '' –

+0

+ 5. mysql version – Erik

ответ

6

В документации по MySQL 5.0 есть хорошая страница об этом topic.

В статье приведены приблизительные пропорциональные затраты по каждой из подзадач, участвующих в задаче вставки.

Время, необходимое для вставки строки определяется следующими факторами, где цифры указывают приблизительные пропорции:

Подключение: (3)

Отправка запроса к серверу: (2)

Синтаксический запрос: (2)

Вставка строки: (1 × размер строки)

Вставка индексов: (1 × количество индексов)

Закрытие: (1)

Это не принимает во внимание начальную нагрузку, чтобы открыть таблицы, которая выполняется один раз для каждого запроса одновременно работает.

Размер таблицы замедляет вставку индексов по логарифму N, , предполагая индексы B-дерева.

В остальной части статьи приведены методы ускорения вставок, полезные, если скорость вставки становится узким местом в вашем приложении.

+4

Я добавил соответствующий отрывок в случае, если ссылка гниет. –

Смежные вопросы