Wordpress wpdb get_results langzaam laden query bij 1000 records

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Van Sebas

Van Sebas

16/06/2021 09:04:53
Quote Anchor link
Beste phpers,

Ik ben bezig om een aparte pagina in mijn Wordpress omgeving aan te maken en daarin wil ik via een aantal queries gegevens ophalen uit mijn MySQL database en deze dan op de pagina tonen. Nu is dat geen probleem maar ik loop met mijn query tegen een probleem aan wanneer die query meer dan 1000 records ophaalt dan duurt dat ongelofelijk lang op de betreffende pagina (dit terwijl als ik de query in phpmyadmin uitvoer deze in 0.000038 seconden klaar is).

Dit is mijn select query die ik heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%1' ORDER BY id ASC");


En ik heb dit dan met alle getallen dus ook in LIKE '%2' en LIKE '%3' enz.
Maar op een pagina waar hij met een specifieke datum maar 100 records laat zien per getal gaat alles goed maar ik heb nu een pagina waar hij per getal 1100 records moet laten zien maar dan krijg ik een melding dat de pagina niet geladen kan worden. Als ik dan alle queries wegrem en alleen die van LIKE '%1' over hou dan wordt de pagina na een lange tijd eindelijk geladen met de juiste gegevens. Maar alle queries uitvoeren gaat hem niet worden.

Als ik in de query over een LIMIT 250 set werkt de pagina wel (na lang laden) maar dan mis ik data.

Is er een mogelijkheid om dit probleem op één of andere manier te omzeilen zodat alle records wel geladen worden en snel (niet dat je er 10+ seconden voor hoeft te wachten).
 
PHP hulp

PHP hulp

03/08/2021 21:31:00
 
- Ariën -
Beheerder

- Ariën -

16/06/2021 09:39:03
Quote Anchor link
- Waarom haal je alle velden op?
- En zit er op je grote hoeveelheid rijen die je ophaalt ook een paginering?
- En voer je nog meer dingen uit bij het het doorlopen van de records? Als dit nog een querie is, dan kan ik mij indenken waarom het traag loopt.
 
Van Sebas

Van Sebas

16/06/2021 17:17:20
Quote Anchor link
Waarom haal je alle velden op?
Omdat er 5 kolommen zijn die ik allemaal laat zien op de pagina.

En zit er op je grote hoeveelheid rijen die je ophaalt ook een paginering?
Nee, het liefst wil ik alle resultaten op één lange pagina tonen.

En voer je nog meer dingen uit bij het het doorlopen van de records?
De onderstaande queries zijn alle queries die ik uitvoer, en na het ophalen laat ik alle kolommen zien via een foreach, meer niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%1' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%2' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%3' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%4' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%5' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%6' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%7' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%8' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%9' ORDER BY id ASC");

$wpdb->get_results("SELECT * FROM randomized WHERE datum = '". $datum ."' AND getal LIKE '%0' ORDER BY id ASC");



Of zal het veel meer snelheid schelen als ik een query gebruik waarin ik alles ophaal en dan met een php if then else statement ga werken om de gegevens te tonen?
 
- Ariën -
Beheerder

- Ariën -

16/06/2021 17:39:36
Quote Anchor link
Ja, onnodige queries in een loop moet je zoveel mogelijk vermijden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.