Почему инструкции Insert выполняются медленнее по индексированной таблице?ORACLE Вставка производительности в индексированных таблицах
ответ
Это фактически тот же самый вид вопроса, как:
Почему это займет больше времени, чтобы положить все свои продукты в правильном месте в моей кухне , чем оставить все в мешках после того, как я посетил мои продукты магазин?
Это потому, что при хранении ваших продуктов вы хотите, чтобы они находились в хорошем, хорошо известном положении, так что их легче найти позже.
База данных должна делать то же самое.
- Если у вас есть таблица без индекса, она может просто добавить новые данные в конце таблицы.
- Если у вас есть индекс, база данных должна выполнять больше работы. Вероятно, он все равно поместит запись в конце таблицы, но дополнительно обновит ее индекс, чтобы убедиться, что если вы захотите найти эту запись позже, она найдет ее быстрее, чем без индекса.
Это также означает, что добавление большего количества индексов приведет к замедлению вставки.
Должно быть ясно, что вы хотите только создать индекс, если впоследствии будете использовать его. Если вы только создаете индекс, и впоследствии не используете его для повышения производительности запроса, нет необходимости иметь индекс, поскольку он только замедляет вставки и не улучшает какой-либо запрос.
Оператор INSERT
должен как добавить данные в табличные блоки данных, так и обновить любые индексы, определенные этой таблицей.
Очевидно, что если у вас есть индекс, вставка должна будет выполнить еще одну «работу», чтобы обновить индекс.
Индексы позволяют хранить дополнительную информацию (в блоках индекса) о данных, которые облегчают получение данных. Очевидно, что вы делаете дополнительную работу изначально, чтобы потом воспользоваться (для выбора).
Если вам нужно удалить некоторые данные на более позднем этапе из таблицы, в которую вы вставили, было бы неплохо иметь индекс в таблице. Дополнительное время, затрачиваемое на вставку данных в таблицу, может быть скомпенсировано тем, что операции удаления выполняются быстрее в индексированной таблице (если индексированные столбцы используются в предложении удаления WHERE.
Это не отвечает на заданный вопрос. Кроме того, общий совет против использования индекса (особенно без конкретного контекста) является плохим советом. –
- 1. Sql Server вставка высокой производительности в двух связанных таблицах
- 2. Вставка данных в разных таблицах
- 3. Настройка производительности - Вставка
- 4. Массовая вставка ожидаемой производительности
- 5. Вставка вопросов производительности SQL
- 6. Вставка настройки производительности
- 7. SQL Server 2008 Вставка производительности производительности
- 8. Сравнение производительности индексированных представлений и хранимых процедур в SQL Server
- 9. Вставка в вложенных таблицах в Oracle DB
- 10. Вставка и загрузка индексированных данных DB в виде json
- 11. MVC: Вставка данных в двух таблицах
- 12. Вставка даты и времени в Google Таблицах
- 13. Вставка данных из выбора в нескольких таблицах
- 14. MySQL Справка: вставка данных в двух таблицах
- 15. Вставка данных из соединения в таблицах
- 16. Вставка данных в двух таблицах из формы
- 17. PHP PDO Mysql Вставка производительности
- 18. Вставка данных высокой производительности в SQL Server
- 19. Cassandra Вставка и обновление различий в производительности
- 20. EF Вставка повторяющихся записей во многих таблицах
- 21. Вставка данных во многих таблицах Symfony
- 22. индексированных переменная в AMPL
- 23. Каковы критерии для индексированных просмотров?
- 24. Несколько таблиц против индексированных строк
- 25. Вставка производительности с индексом и без него
- 26. RoR: Производительность индексированных полей
- 27. Mysql: Вставка производительности INNODB против MYISAM
- 28. Вставка данных в двух таблицах одновременно в MySQL
- 29. Вставка строк в других таблицах по созданию в YII
- 30. GtkTreeView вставка/обновление производительности за счет сортировки
Мне нравится аналогия ;-) , –
Чтобы сделать аналогию более педантичной, я бы сказал, что это похоже на получение двух предметов каждого бакалейного магазина; один предмет входит в кладовку в любом старом порядке, дублирующий предмет наносится на кухонную скамью в алфавитном порядке. Если, конечно, вы не используете таблицу с индексированием, и в этом случае вы не беспокоитесь о получении предмета для кладовой :) –