Ускоряем и оптимизуруем Delete из таблиц
В одной из своих записей я уже рассказывал о способах ускорения insert. В этой записи я расскажу о простейших способах оптимизиции и ускорении удаления строк из таблиц. В принципе, способы удаления схожи со способами вставки во многом.
Итак:
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 условие по полю первичного ключа, то целесообразно будет сделать именно так. Этот запрос будет не только быстрее, но и не будет блокировать таблицу.
Спасибо, полезно!