Импорт товаров WooСommerce напрямую в базу данных с проверкой на уникальность INSERT ... ON DUPLICATE KEY UPDATE
У меня есть сайт на WordPress с магазином на WooCommerce. Есть скрипт, который делает импорт товаров из файла csv напрямую в базу данных. Проблема в том, что он проверяет наличие артикула в базе данных на уникальность SELECT'ом. Насколько я понял, то чтобы ускорить импорт, необходимо сделать проверку не SELECT'ом, а INSERT ... ON DUPLICATE KEY UPDATE для ускоренной проверки потому что в файле обычно не менее 500 тысяч позиций и скорость очень важна. Импорт включается через cron. Сейчас без проверки SELECT'ом скорость добавления товаров 4000 позиций в минуту. При включении такой проверки по мере добавления товаров в базу скорость уменьшается с каждой итерацией и достигает 2-4 товара в минуту, а после и совсем останавливает сервер (505 ошибка).
Вот отрезок кода, где проводится проверка на уникальность и добавляется товар:
$product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $post_sku ) );
if(is_null($product_id) || empty($product_id)){
$rc=create_new_product($post_title,$post_descr,$product_price,$post_sku,$item_cat,$new_post_date);
}
Если этого недостаточно для решения проблемы то я могу отправить целый файл. Помогите, пожалуйста, решить проблему.