В общем следующий запрос работает очень быстро на больших объемах.
INSERT INTO `list`
(`id`, `name`, `sex`,`company`,`email`,`send_status`) VALUES
(2,"Sasha","male","viplab","kloun@faka.ru","Y")
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `sex` = VALUES(`sex`), `company` = VALUES(`company`), `email` = VALUES(`email`), `send_status` = VALUES(`send_status`);
Но у этого метода есть минус, если id не существует, то он ругаться не будет, ведь это insert.
вызывать каждый раз select не хочется для проверки. Есть ли способ это обойти?