PHP & PDO: самый быстрый способ получить данные из - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть таблица HTML, которая извлекается из тысяч строк сообщений и даты, когда они были отправлены пользователем, и в настоящее время я пытаюсь понять, как получить данные быстрее, так как это занимает от 5 до 9 секунд. полностью загрузить на страницу. Я также хочу добавить тот факт, что я использую таблицы данных. js для нумерации страниц (я загружаю 50 строк на страницу).

$stmt = $link->prepare("SELECT * FROM User WHERE ID = :id ORDER BY timeStamp DESC");
$stmt->bindParam(':id', $id);
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)): ?>
     <td><?php echo $row['message']; ?></td>
     ...
endwhile;

1 Ответ

1 голос
/ 04 апреля 2020

Как я вижу, вы просто используете $row['message'] из подготовленного утверждения. Попробуйте выполнить следующий запрос:

"SELECT message
FROM User
WHERE ID = :id
ORDER BY timeStamp DESC"

Кроме того, как вы сказали, вы используете js, я полагаю, вы используете AJAX, тогда вы должны передать текущую страницу в качестве параметра и, наконец, вы можете измените запрос на что-то вроде:

"SELECT message
FROM User
WHERE ID = :id
ORDER BY timeStamp DESC
LIMIT :startingPosition, :recordsPerPage"

$startingPosition = currentPage times 50 (because you are displaying 50 items each page). $recordsPerPage = 50

Таким образом, вы не загрузите все записи при первой загрузке страницы (что занимает 5-9 se c как вы сказали). Вместо этого он выполнит несколько запросов, по одному для каждой страницы, что довольно быстро.

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