Índex
- Introducció
- Configuració
- Paràmetres de memòria
- max_connections =
- shared_buffers =
- sort_mem = / work_mem =
- effective_cache_size
- Ubicació física de les taules
- Disseny
- Dimensionament de taules
- Taules auxiliars
- Redundància de dades
- Indexació
- Escollir els índexs adequats
- No tot és automàtic
- Els índexs no son màgics
- Disparadors (triggers)
- La regla d'or: Minimalisme.
- Recursivitat
- Manteniment
- Anàlisi i construcció de les consultes
- Planificació
- Explain
- No tot és el que pareix...
- Truc: Estalviar-nos un subquery
- No comptis si no vols saber quants n'hi ha
- Vistes
- Prepare
- Resum (i comentaris)
Introducció
Avui en dia, extrany és el sistema informàtic que no es recolzi en una base de dades relacional per a l'emmagatzemament i accés a la informació. PostgreSQL, MySQL, Firebird, Interbase... son noms sobradament coneguts de sistemes gestors de bases de dades relacionals.
Aquests sistemes son prou potents per fer que, amb la potència actual dels ordinadors, no calguin gaires esforços per aconseguir un rendiment acceptable o bò per volums petits o mitjans de dades.
Això fa que l'optimització de la base de dades sigui, habitualment, el gran oblidat. El gran oblidat... fins que et trobes en la necessitat de gestionar un elevat volum de dades i que el rendiment no s'et caigui per terra.
Aquest article és un recull, basat en la meva experiència, d'alguns dels aspectes que cal tenir en compte per tal de que no s'ens caigui per terra el rendiment en una base de dades de dimensions considerables implementada amb PostgreSQL
No cal dir que això no és un manual exhaustiu ni pretén substituïr la excel·lent documentació oficial de PostgreSQL sino, en tot cas, complementar-la posant èmfasi en els petits detalls que de vegades passam per alt i els errors més típics que, per bé puguin semblar òbvis quan s'expliquen, de vegades la inèrcia o la manca d'experiència ens poden induïr a cometre.
Per no fer-me avorrit, he intentat no extendre'm molt a cada punt ni aprofundir en detalls que, tanmateix, ja estan perfèctament explicats a la documentació de PostgreSQL. Tanmateix, ni es tracta de tasques complicades, ni sempre ens seràn necessàries o útils. Dependrà en tot cas de les característiques de la nostra base de dades, quines accions poden o no ajudar-nos a millorar el seu rendiment.
Aquest document, per tant, no és més que una llista de verificació per ajudar-nos a trobar el (o els) mal(s) per després subsanar-los.
De tota manera, però, procuraré deixar els enllaços suficients perquè us sigui fàcil trobar la documentació relacionada en cas de ser necessari i, òbviament, si trobau res a faltar, podeu preguntar als comentaris ;-)
Aixímateix, pensant en els més profans en bases de dades, he intentat ser una mica exhaustiu i, per als més experimentats, pot ser que alguns fragments vos resultin més interessants que d'altres. Sentiu-vos lliures per botar-vos el que no vos interessi. Al final trobareu un petit resum dels punts més importants que pot ser vos serveixi també d'ajuda per localitzar els punts que vos puguin venir més de nou. I si teniu algun suggeriment per millorar-lo, serà benvingut ;-) |