goedemiddag
hoe kan ik het beste queries tellen?

ik wil mijn online software sneller maken
dus wil ik dat op 2 manieren doen

1 mijn sql indexes optimaliseren
2 minder queries, want ik heb er heeeeeeeeel veel :P

nu wil ik dus een klein scriptje schrijven waarmee ik de queries kan tellen op een bepaalde pagina

ik heb al iets gemaakt met SHOW SESSION STATUS en dit werkt opzich wel maar alleen als ik enigste ben die op dat moment in het systeem is
wat bijna nooit het geval is



dus zoek ik een goede manier om alle queries te tellen op een pagina

ideeën zijn welkom
En voortbordurend op de tip van Thomas kun je dan van

public $totalQueries = 0;

beter maken

protected $totalQueries = 0;

of nog strikter

private $totalQueries = 0;
haha dit is best leuk
ik ben ff overall op site die teller aan het neerzetten om ff te testen en dat is best grappig
ik heb er ff wat functies en testjes bij geschreven maar resultaat werkt

er worden 3queries opgevraagt voordat pagina begint
er worden 15 queries opgevraagt voordat touch POS begint

[size=xsmall]Toevoeging op 30/08/2019 11:27:58:[/size]

o dat ga ik gelijk wel even aanpassen
niet dat dit nodig is want in princiepe zit er all een gehele beveiliging in het script maar toch
ik zal het geljk even aanpassen

[size=xsmall]Toevoeging op 30/08/2019 11:29:53:[/size]

uhm ik zette hem net even op private en krijg gelijk een 500 error

[size=xsmall]Toevoeging op 30/08/2019 11:31:00:[/size]

bij protected ook

[size=xsmall]Toevoeging op 30/08/2019 11:32:43:[/size]

ok uhm ik heb nu die protected hier gezet

protected function totalQueries(){
return $this->totalQueries;
}

dan werkt het wel

[size=xsmall]Toevoeging op 30/08/2019 12:13:29:[/size]

kan ik hierin ook een loadtijd bijbouwen
moet volgens mij kunnen :)
Sylvester vader op 30/08/2019 11:25:44

uhm ik zette hem net even op private en krijg gelijk een 500 error
Misschien handig om de foutmeldingen onder PHP even aan te zetten als je aan het ontwikkelen of aan het testen bent? (Je gaat toch ook niet autorijden met een blinddoek om :p)

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>


Sylvester vader op 30/08/2019 11:25:44

ok uhm ik heb nu die protected hier gezet

protected function totalQueries(){
return $this->totalQueries;
}

dan werkt het wel
Het zou toch handig zijn als je je een klein beetje zou verdiepen in Object georiënteerd programmeren. De keywords private, protected en public hebben niets met beveiliging te maken. Ze bepalen enkel van waaruit je code deze variabelen/functies gebruikt mogen worden. Zo mag een private variabele alleen in de class zelf gebruikt worden. Wat je nu gedaan hebt is zorgen dat de functie totalQueries() alleen door de class zelf of een afgeleide class aangeroepen mag worden. Dit hoeft niet per definitie fout te zijn maar wees je er van bewust dat je buiten je class deze functie NIET meer rechtstreeks kan gebruiken. De keywords private en protected leggen dus een beperking op. Het heeft te maken met het ontwerp van je class. Met waar is deze class voor bedoeld? Hoe mag deze class gebruikt worden door mijzelf en andere programmeurs? Dat soort dingen dus..

[size=xsmall]Toevoeging op 30/08/2019 12:53:25:[/size]

Indirect gebruik van de variabelen/functies (Of liever properties/methods) kan weer wel. Een simpel voorbeeld van een alom bekende getter en setter:

<?php
class Person {
private $name;

function getName() {
return $this->name;
}

function setName($name) {
$this->name = $name;
}
}

$p = new Person();

$p->setName('Frank'); // works
echo $p->getName(); // works
echo $p->name; // ERROR. We zijn buiten de class en dus kunnen we private $name niet benaderen.
?>
kijk zo leer ik weer is wat
die class is deel van het login/regstratie script
en hierin staat ook die sql_guery functie

het draait eigleijk met het tellen alleen op dat

maar het werkt dus ik ben blij :P
ik zal vanavond ff kijken met die errors als all mijn klanten slapen :P
nu moet ik alleen nog even een loadtime functie erin zetten zodat ik precies kan zien hoeveel seconden een de query nodig heeft om info te laten zien
Mocht je toch besluiten om de code eens flink onder handen te nemen dan zou je natuurlijk ook een testomgeving kunnen inrichten. Ik bedoel bijvoorbeeld met XAMMP een eigen webserver en mysql-server installeren en een kopie van je database en code overzetten naar je testomgeving zodat je daar lekker op kunt knoeien zonder dat je klanten daar last van hebben.
ja klopt echter werkt mijn script als er ook echt klanten mee bezig zijn
dus een life omgeving

ik heb een backup site en deze gebruikt exact de zelfde database
maar kleine dingetjes zoals dit doe ik meestal gelijk op de life site en ik zet dan tijderlijk tussen een
if ($group['group_id'] == 255) {

}
zodat alleen ik het kan zien
Ikzelf heb een debugstand, en toon het tussen HTML-comments. Evenals wat andere debugdingetjes, zoals laadtijd en verbruikte geheugen.

Reageren