I'm using MySQL 5.5 with a table in InnoDB running:
deletemetinyint NOT NULL DEFAULT 0;`
UPDATE `import` SET `deleteme` = 1; -- Set the delete field
LOAD DATA LOW_PRIORITY LOCAL INFILE "import.csv"
REPLACE INTO TABLE `import` FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY """" LINES TERMINATED BY "\n"
IGNORE 1 LINES (`id`, `name`, `m_id`, `sku`)
SET `deleteme` = 0;
DELETE FROM `import` WHERE `deleteme` = 1;
Almost all of the tables have over 200,000 rows in them, and it's taking to long to update the tables. Is there a better, faster way to do this?
This is on a VPS with 2gb ram w/ 4 Cores and it's not taxing anything doing these updates, it's just SLOW.
http://sqlfiddle.com/#!2/66559/4
Demo of working code.

deletemecolumn as a temporary mark (for deletion), it's not very good to update 200K rows and then delete those 200K rows. You can either delete them (without any update) or (if you really need that) "mark" them for deletion by creating a temp table with just anidcolumn and insert the PKs (of the rows to be deleted) there. – ypercube Apr 7 '12 at 8:35