Dan itu jelek. Ini berfungsi dengan baik sampai ada beban signifikan lainnya pada DB, dan kemudian semuanya berjalan sangat lambat. Ini sebagian besar karena keterbatasan IO server, tetapi pendekatan yang lebih sederhana adalah memasukkan isfiction dan isNonFiction ke dalam tabel MEMORY dan pernyataan DELETE kemudian dapat terlihat seperti:
DELETE tmp_table FROM tmp_table
INNER JOIN
(
SELECT ASIN, MAX( isFiction ) AS isFiction, MAX( isNonFiction ) AS isNonFiction
FROM tmp_table
GROUP BY ASIN
HAVING isFiction =1
AND isNonFiction =1
) D
WHERE D.ASIN=tmp_table.ASIN AND tmp_table.isNonFiction=1
Dalam pengujian, ini menurunkan seluruh proses dari sekitar 90 detik menjadi 10 detik.