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

mysqlДля больших проектов и соответственно больших таблиц баз данных, нужно быть внимательным при построении логики запросов. Рассмотрим ускорение 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 условие по полю первичного ключа, то целесообразно будет сделать именно так. Этот запрос будет не только быстрее, но и не будет блокировать таблицу.

  • Gogol

    Понравилась тема. В избранное. А то на работе делать нечего(;

  • Maksimilyanich

    Надо это опробывать.

Запись навигация

Top