SQL. Оптимизация удаления из таблиц


Для больших проектов и соответственно больших таблиц баз данных, нужно быть внимательным при построении логики запросов. Рассмотрим ускорение Delete из таблиц sql.

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

Например, вместо:

delete from tablename where field1=2
delete from tablename where field1=3
delete from tablename where field1=4

лучше записать так:

delete from tablename where field1=2 or field1=3 or field1=4

2. Если при удалении вы уверены, что никто не будет делать запрос к таблице, то делайте «LOCK TABLE».

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

Источник: T-SQL Development Blog

, , ,

1 Star2 Stars3 Stars4 Stars5 Stars (голосов 1, в среднем: 2.00 из 5)
Loading ... Loading ...


  1. #1 semen - Февраль 13th, 2012 at 04:54

    а лучше так:
    delete from tablename where field1 in (2,3,4);

(will not be published)

Spam Protection by WP-SpamFree Plugin

  1. No trackbacks.