im в настоящее время выполняет запрос, который вытягивает строку из моего db. но он должен проверять каждую новую строку i import. и файл размером 100 тыс. занимает почти 4 часа для импорта. Это слишком долго. im, предполагая, что мой код sql, чтобы проверить, существует ли он, является тем, что замедляет его. ive слышал об индексировании, но я понятия не имею, что это такое или как его использовать.Сделать мой запрос более эффективным
это текущий код им с помощью:
$sql2 = $pdo->prepare('SELECT * FROM prospects WHERE :ssn = ssn');
$sql2->execute(array(':ssn' => $ssn));
if($sql2->fetch(PDO::FETCH_NUM) > 0){
так каждый phpscript читает новую строку, она делает эту проверку. проблема в том, что я не могу положить ее в «дубликат ключа» в код sql. он должен проверить перед переходом на любой sql, потому что, если он пуст, тогда он должен продолжать делать свое дело.
Что я могу сделать, чтобы сделать это более эффективным в отношении времени? а также, если индекс - это способ пойти, может кто-то просветить меня, как это будет сделано путем публикации примеров, связывания руководства или страницы php.net. и как я мог читать из этого индекса, чтобы делать то, что я нахожу в своем коде
Тогда, возможно, чтение немного о [индексов] (http://dev.mysql.com/doc/refman/5.5/en/optimization-indexes. html) было бы хорошим местом для начала –
Индексирование таблицы не связано с PHP. Является ли 'ssn' основным, foreighn ключом или нет? –
SQL основан на «наборах» или наборах строк, и большинство эффективности сосредоточено вокруг этого прецедента. Сбрасывание данных во временную таблицу db и выполнение запроса во всем сразу может привести к лучшим результатам в целом. –