Редизайн кода приложения для уменьшения нет. базы данных с точки зрения производительности

сценарий

Я хочу проанализировать большой CSV-файл и вставить данные в базу данных, csv-файл имеет приблизительно 100 тыс. Строк данных.

В настоящее время я использую fgetcsv для синтаксического анализа файла по строкам и вставки данных в базу данных, поэтому прямо сейчас я удаляю базу данных для каждой строки данных, присутствующих в файле csv, поэтому в настоящее время число попаданий в базу данных составляет 100 КБ, что не очень хорошо от точки производительности Посмотреть.

Текущий код:

 public function initiateInserts() { //Open Large CSV File(min 100K rows) for parsing. $this->fin = fopen($file,'r') or die('Cannot open file'); //Parsing Large CSV file to get data and initiate insertion into schema. while (($data=fgetcsv($this->fin,5000,";"))!==FALSE) { $query = "INSERT INTO dt_table (id, code, connectid, connectcode) VALUES (:id, :code, :connectid, :connectcode)"; $stmt = $this->prepare($query); // Then, for each line : bind the parameters $stmt->bindValue(':id', $data[0], PDO::PARAM_INT); $stmt->bindValue(':code', $data[1], PDO::PARAM_INT); $stmt->bindValue(':connectid', $data[2], PDO::PARAM_INT); $stmt->bindValue(':connectcode', $data[3], PDO::PARAM_INT); // Execute the statement $stmt->execute(); $this->checkForErrors($stmt); } } 

Я ищу способ, в котором вместо того, чтобы ударять базу данных для каждой строки данных, я могу подготовить запрос, а затем нажать его один раз и заполнить базу данных вставками.

Какие-либо предложения !!!

Примечание. Это точный пример кода, который я использую, но в CSV-файле больше нет. поля, а не только id, code, connectid и connectcode, но я хотел убедиться, что я могу объяснить логику и поэтому использовал этот пример кода здесь.

Благодаря !!!

Related of "Редизайн кода приложения для уменьшения нет. базы данных с точки зрения производительности"