( dszakal | 2016. 11. 20., v – 10:36 )

Ne csinalj ilyet.

DELETE FROM az csak IN (primary_key_value1, primary_key_value2, ...(stb.)) feltetellel toroljon tobb sort.
(UPDATE SET is ;) )

Mindenkepp csinalj elotte egy SELECT-et, foleg, ha LIKE query van, amin egy index se segit eleget. Egyeb esetben hosszu masodpercekre lelockolod az egesz tablat ezzel az egesz rendszert feltartva (a "mi mysql-unk" (5.6, Oracle-fele) legalabbis igy viselkedik).

Tehat:

1. query (nem lockol mert csak read):

SELECT DISTINCT table1_id FROM table1 where column1 like 'pattern1%' and column2 in (select column3 from table2 where column4='pattern2')

2. query:

DELETE FROM table1 WHERE table1_id IN ($vesszovelElvalasztvaElozoQueryEredmenyei)

(ez utobbi 10000-nel tobb sort ne toroljon, ugy mar tapasztalatom szerint tobbet arthat mint hasznal a sebessegnek.