2012-05-17 3 views
0

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

Мне нужно использовать все запросы insert/update/delete/select в моей таблице useraccount.

Теперь я хочу знать, я должен использовать индекс .Если да, то пожалуйста, скажите мне несколько способов ускорить вставки запроса при использовании индекса

+0

Почему вы отметили это с помощью MySQL ** и ** SQL Server? –

+0

Думаю, что кто-нибудь взглянет на теги этого вопроса –

+0

Не волнуйся, я думаю, что здесь много людей, которые охотятся за любым вопросом, чтобы ответить и тем самым заработать очки репутации. Например, я здесь. Я благодарен за все голоса и принятые ответы. :-) –

ответ

0

Вы должны использовать индексировать каждый раз, когда польза от более быстрых запросов убедительно больше чем недостатки медленных вставок, обновлений и удалений. Используйте запросы в столбцах, которые часто используются в условиях WHERE. Если у вас есть массовые вставки, вы можете удалить/отключить/отключить индекс (ы) и перестроить их после действия.

+0

Предположим, что мой один пользователь сбросил индекс во время вставки, и в то время, когда другой пользователь выбирает данные из db, тогда я могу знать, что нужно индексу –

+1

Обратите внимание, что индексы могут (и очень часто) ускорять ' UPDATE' или 'DELETE'. –

+0

Действительно, индексы могут ускорять или удалять обновления, поэтому я упоминал только вставки, когда индексы можно отбросить/отключить/не использовать. Но сброс/отключение/исключение индекса обычно выполняется в хранилищах данных во время процесса ETL (Extract, Transform, Load). Во время этого процесса пользователи обычно не используют базу данных. В OLTP-системах индексы обычно не обрабатываются, поэтому они всегда доступны, и поэтому нельзя избежать затрат на обслуживание индексов «на лету». –

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