Петро Бойко, Выложите часть CSV файла, чтобы облегчить задачу людям, которые могут Вам помочь, либо весь его, если оне небольшой. А Александр Аксентьев указал Вам функцию в php, которая решает задачу парсинга CSV файла, о которой Вы собственно и спрашивали.
AlikDex, Не в этой теме, но все же - бОльшую небезопасность представляет хранение приватного ключа / пароля для расшифровки. И даже если получили доступ не к руту - то тоже можно прочитать ключ, ведь приложение выполняется не под рутом.
А зачем? Это возможно применить только для того случая, когда сервер БД и приложения разные, причем желательно даже в разных ДЦ / странах. Иначе смысл этого шифрования теряется. При взломе сервера / приложения - ключи все равно будут доступны.
Если при коннекте Вы открываете транзакцию, то COMMIT или ROLLBACK сбросят Ваши изменения в рамках транзакции и "перечитают" состояние. Посмотрите где Вы открываете транзакцию и уберите ее.
Melkij, Ну возможно больше данных повлияло бы на конкретизацию ответа. Но насколько я столкнулся с проблемой - настолько и поставил вопрос. Я не претендую на то, чтобы называть Ваше решение неэффективным, возможно я его просто не умею готовить :)
А по запросу - это только малая часть всей постановки, там еще несколько JOIN и UNION еще к этому всему делу. В итоге все в оконцовке будет прогоняться по тестированию с намного большим количеством данных для построения нужных индексов.
Главное что Ваш совет по поводу рекурсивных запросов смог повлиять на другой запрос, который я смог улучшить, так что Спасибо Вам все равно причитается