Я пишу запрос, который извлекает много миллионов строк из таблицы и помещается в txt-файл.Есть ли все-таки, чтобы проверить время выполнения (прошедшее или оставшееся) для «ВЫБРАТЬ ... ВХОДИТЬ» в php mysql?
$sQuery = " (";
$sQuery .= " SELECT number ";
$sQuery .= " INTO OUTFILE '".$outputfile_dnd."' ";
$sQuery .= " FIELDS TERMINATED BY ',' ";
$sQuery .= " LINES TERMINATED BY '\r\n' ";
$sQuery .= " FROM `".$database."`.$temp_table_name";
$sQuery .= " WHERE number IN (SELECT number FROM `db_dnd`.`dnd`)";
$sQuery .= ")";
Поскольку будут огромные данные, это займет несколько минут времени, чтобы заполнить их иногда. Я хочу, чтобы пользователи знали, сколько времени будет выполняться в процессе (примерно). Я думаю, чтобы держать кнопку в интерфейсе, когда пользователь нажимает кнопку, он должен показывать оставшееся время. Если его невозможно найти оставшееся время, если я могу получить истекшее время и количество выбранных строк, то и его штраф. Любая помощь? Худший случай Я собираюсь пойти с INSERT IN TO в другую таблицу, а затем положить в файл после того, как все вставлено.
Если вы хотите сократить время вашего запроса, вы можете заменить свое 'Where number IN' на соединение. Соединения намного быстрее, чем 'IN', если вы запрашиваете много данных. [См. Здесь] (https://dev.mysql.com/doc/refman/5.7/en/rewriting-subqueries.html) –