Is het mogelijk om een lijst op te vragen van memory tables die in het geheugen staan?
BV, om te kijken als die tabellen echt gedropped zijn.. Want wat gebeurt als je maar tabellen blijft aanmaken, en geen dropped?
En waarom zou je tabellen blijven aanmaken? Jouw datamodel verandert niet, tabellen maak je 1x aan en daarna ben je klaar. 1 a 2 keer per jaar komt er dan wellicht iets bij, maar dat is het dan wel.
Of heb je soms een ander probleem waar je hier niets over vertelt? Waarom zou je bv. MEMORY willen gebruiken?
De oplossing is telkens zo simpel.. Bedankt Frank.
Waarom ik mem wil gebruiken is om on the fly tabellen te maken voor data die moet dienen om een Chart op de bouwen..
Inner joins en functies doen het slechtbij een grote hoeveelheid data, daarom vind ik het veel efficiënter die temporary table te maken. (query van 7 minuten werd nu gedaan in minder dan een seconde).
Probleem is dat er nog soms foutjes zitten bij de implementatie in PHP, en dat ik wou kunnen zien welke er nog waren blijven hangen.
Dan lijkt mij het gebruik van een TEMP TABLE handiger dan een MEMORY table. een temporary table wordt namelijk automatisch weggegooid zodra je de verbinding met de database sluit.
- maak de temp table
- doe je ding en maak de chart
- klaar
en dus is de temp table weer verdwenen.
Een tabel van het type MEMORY blijft ook ná het sluiten van de verbinding bestaan. Die zul je dus echt moeten droppen of je moet de server stoppen. Dat is namelijk ook nog een manier om hem kwijt te raken.
Ps. Langzame queries kunnen ook duiden op ontbrekende of foute indexen. Wellicht heb je helemaal geen temp table of tabel van het type MEMORY nodig, maar gewoon 1 goede query die goede indexen gebruikt. Heb je al met EXPLAIN achterhaald waarom de boel langzaam is/was?
Tip: Ieder keer dat je een probleem hebt met SQL zoek je naar een oplossing in de handleiding. Vervolgens lees je nog even 1 pagina extra door en in korte tijd ken je de meest duistere kanten van je database.
MySQL pas 5 jaar geleden ontdekt en PostgreSQL pas 2 jaar geleden. Maar goed, met SQL in je vingers en de handleidingen op klikafstand, kun je bijna iedere SQL-database wel te lijf gaan, geen enkel probleem.