ce que je te préconise , c est de diviser au maximum les tables ....
les performances en seront bien meilleures ...
j ai moi meme un site que je gere qui supporte un total d environ 2 millions de insert et update par jour , pour environ 15 millions de select
la consommation est telle que j ai 2 serveurs qui gerent que apache et php , et un serveur qui gere que mysql (le serveur pour mysql est un bi-xeon )
le jour ou j ai séparé les tables , j ai divisé la charge serveur par 3 ...
je te propose d'enlever un champ à ta table , et de créer autant de tables qu'il y a de possibilité à ce champ enlevé ....
exemple : t as un champ enum '0','1','2','3','4','5','6','7'
tu crée les tables :
- table0
- table1
- table2
- table3
- table4
- table5
- table6
- table7
tu divise dans cet exemple la taille de la table requetté par 8 (ainsi que la taille des index)...
en faisant ainsi , tu devrait pouvoir enormement gagner en temps de réponse sur les select et sur les insert ...
pour ce qui est de postgres , j ai moi meme fait un test , et ma conclusion était que postgres est pres de 2 fois plus lent que mysql sur des petites tables , et legerement plus lent que mysql sur des grosses tables ...