2015-12-17 2 views
0

Я использую MYSQL в своей разработке приложений как свою БД.Индексы будут влиять на каждую вставку, даже если я убегу от этого столбца из инструкции insert?

Я хочу прояснить ситуацию.

Imagine Существует таблица под названием test.

Столбцы col1, col2, col3, col4. Эти столбцы имеют отдельные индексы. что означает 4 индекса.

Я вставляю запись только в col1 и col2.

Когда у вас есть индекс в операции с вставкой столбцов, есть стоимость.

Мой вопрос есть. ----

Итак, когда я вставляю записи только в один и два У меня есть эффект от col3 и col4? Индексы будут стрелять для каждой вставки или будут ли они срабатывать, если я вставляю их в эти столбцы?

ответ

2

Давайте получим простой факт: в СУБД нет такой вещи, что вы вставляете запись только для выбранных полей чисел в таблице. Если вы вставляете запись, то все поля в этой таблице будут иметь значение для этой записи. Это значение может быть значением null, но оно есть.

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

Mysql индексирует даже нулевые значения, поэтому, если у вас есть отдельные индексы для каждого столбца, тогда mysql должен обновлять все индексы, когда новая запись будет вставлена ​​в таблицу, независимо от того, сколько полей специально назначено значение внутри вставки.

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