Op internet zijn er veel technieken te vinden, maar ik weet niet welke er bij mijn situatie past. Misschien is er iemand die meer ervaring heeft met crosstabs en weet of ik de goede kant op ga...
Achtergrond:
Het onderhoud van databases vond ik nogal veel werk, omdat het aantal toenam naarmate je meer applicaties (of sites met CMS) ging bouwen. Daarnaast was de database inrichting vaak hetzelfde. Ik dacht aan een centrale database met daarin alle sites en één backend zodat gebruikers hun content kunnen bewerken. Daarbij wilde ik crosstabs gebruiken, zodat je voor templates direct velden (titels, tekst, datums, images, etc.) kon aanmaken zonder je database tabellen moest aanpassen of aanmaken. Ik vond hier een manier om dynamische views te maken, waar ik echt veel aan heb gehad. Deze basis is echt perfect om dynamische applicaties of websites te bouwen. Systeem: Postgres 8.1, PHP 5.2, Apache 1.3
Probleem:
Bij complexe queries (bv. financiele berekeningen), waarbij ik meerder views JOIN, dan duurt een query ongeveer 3 tot 10 sec. De tabel bevat nu ongeveer 30.000 records. Het gevolg is dat de performance waarschijnlijk slechter wordt bij toename van de records (en users). De views moeten dus geoptimaliseerd worden, maar hoe?
Onderzoek:
Er zijn volgens mij een aantal mogelijkheden, die behoorlijk veel tijd kosten om te implementeren en testen. Ik weet niet of dit de moeite waard is en of het sneller wordt:
1. Postgres 8.3 crosstab function gebruiken
2. De huidige dynamische views omzetten naar Materialized views
3. Postgres 8.3 UUID indexen gebruiken i.p.v. char(32)
Wat denk jij wat ik het beste kan doen?
Achtergrond:
Het onderhoud van databases vond ik nogal veel werk, omdat het aantal toenam naarmate je meer applicaties (of sites met CMS) ging bouwen. Daarnaast was de database inrichting vaak hetzelfde. Ik dacht aan een centrale database met daarin alle sites en één backend zodat gebruikers hun content kunnen bewerken. Daarbij wilde ik crosstabs gebruiken, zodat je voor templates direct velden (titels, tekst, datums, images, etc.) kon aanmaken zonder je database tabellen moest aanpassen of aanmaken. Ik vond hier een manier om dynamische views te maken, waar ik echt veel aan heb gehad. Deze basis is echt perfect om dynamische applicaties of websites te bouwen. Systeem: Postgres 8.1, PHP 5.2, Apache 1.3
Probleem:
Bij complexe queries (bv. financiele berekeningen), waarbij ik meerder views JOIN, dan duurt een query ongeveer 3 tot 10 sec. De tabel bevat nu ongeveer 30.000 records. Het gevolg is dat de performance waarschijnlijk slechter wordt bij toename van de records (en users). De views moeten dus geoptimaliseerd worden, maar hoe?
Onderzoek:
Er zijn volgens mij een aantal mogelijkheden, die behoorlijk veel tijd kosten om te implementeren en testen. Ik weet niet of dit de moeite waard is en of het sneller wordt:
1. Postgres 8.3 crosstab function gebruiken
2. De huidige dynamische views omzetten naar Materialized views
3. Postgres 8.3 UUID indexen gebruiken i.p.v. char(32)
Wat denk jij wat ik het beste kan doen?