Неустранимая ошибка: максимальное время выполнения 30 секунд превышено в C:\xampp\htdocs\MapRouting\Routing.php
Да, я могу установить максимальное время выполнения, но я хочу получить результат за меньшее время, например, в MySql, когда человек нажимает на таблицу, он дает результат, например, показывая строки 0 - 24 (всего 16037 запросов, набрал 0,0032 секунды).
$link = mysqli_connect("localhost","root","","example");
if (mysqli_connect_error()) {
echo "error";
}
$rows = array();
$count = 0;
for ($J=0; $J <= 3; $J++) {
$count = $count + 4000;
for ($i = 1; $i <= $count; $i++) {
$offset_var = $i - 1;
$query = "select id from shipment Limit 1 OFFSET ".$offset_var;
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
}
}
mysqli_close($connection);
echo "<pre>";print_r($rows);echo "</pre>";
Не уверен, каково ваше точное требование этого кода. Но эффективность запросов кажется очень низкой. В вашем запуске слишком много запросов, которые извлекают только одну строку для каждого запроса.
select id from shipment Limit 1 OFFSET 0
select id from shipment Limit 1 OFFSET 1
select id from shipment Limit 1 OFFSET 2
select id from shipment Limit 1 OFFSET 3
select id from shipment Limit 1 OFFSET 4
select id from shipment Limit 1 OFFSET 5
...
Попробуйте это и посмотрите сами
//$link= mysqli_connect("localhost","root","","example");
//if (mysqli_connect_error()) {
// echo "error";
//}
$rows=array();
$count=0;
for( $J=0; $J<=3; $J++) {
$count = $count + 10;
for($i=1;$i<=$count;$i++) {
$offset_var=$i-1;
$query="select id from shipment Limit 1 OFFSET " . $offset_var;
//$result= mysqli_query($link, $query);
//while ($row = mysqli_fetch_assoc($result)) {
// $rows[]= $row;
//}
echo $query."\n";
}
}
//mysqli_close($connection);
//echo "<pre>";print_r($rows);echo "</pre>";
Если вы хотите запустить запрос, чтобы получить 4000 результатов на страницу/запрос?
Тогда следующий код будет делать это в 26 запросах
$link= mysqli_connect("localhost","root","","example");
if (mysqli_connect_error()) {
echo "error";
}
$rows=array();
$page_size=4000;
$total_records=100000;
$count=ceil($total_records/$page_size);
for($i=0; $i<=$count; $i++) {
$offset_var = $i * $page_size;
$query = "select id from shipment Limit ".$page_size." OFFSET ".$offset_var;
$result= mysqli_query($link, $query);
while ($row = mysqli_fetch_assoc($result)) {
$rows[]= $row;
}
}
mysqli_close($connection);
echo "<pre>";print_r($rows);echo "</pre>";
В зависимости от размера вашей таблицы это звучит так, будто у вас просто нет времени, чтобы вернуть 100 тысяч строк.
Попробуйте увеличить время выполнения?
ini_set('max_execution_time', 300);
Это даст ему 5 минут для выполнения.
По умолчанию максимальное время выполнения для скриптов PHP устанавливается в 30 секунд. Если скрипт работает более 30 секунд, PHP останавливает скрипт и сообщает об ошибке. Вы можете контролировать количество времени, в течение которого PHP позволяет запускать скрипты, изменяя директиву max_execution_time в файле php.ini.
Чтобы изменить максимальное время выполнения, используйте текстовый редактор, чтобы изменить директиву max_execution_time в файле php.ini. Например, чтобы установить максимальное время выполнения на 600 секунд (10 минут), используйте следующую настройку:
max_execution_time = 600
Эта модификация должна быть выполнена в файле php.ini
Обновить max_execution_time
в php.ini до 600 секунд
Или вы можете обновить его и в php.
ini_set('max_execution_time', 600);
Здесь 600
- это время в секундах /10 минут.
Используйте функцию ниже.
set_time_limit(0);
Максимальное время выполнения, в секундах. Если установлено равным нулю, лимит времени не налагается.
для получения дополнительной информации любезно посетите эту ссылку set_time_limit.