PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Plans de magasin de colonne

Chez pgsql-general, Bráulio Bhavamitra demande :

C'est une question assez intéressante. Remplacer complètement le magasin actuel basé sur les lignes ne serait pas une bonne idée :il nous a extrêmement bien servis et je suis presque sûr que le remplacer entièrement par un magasin en colonnes serait désastreux en termes de performances pour les cas d'utilisation OLTP.

Quelques colonnes. Photo publiée avec l'aimable autorisation de Yiming Sun sur Flickr

Cela ne signifie pas que les magasins à colonnes sont une mauvaise idée en général, car ils ne le sont pas. Ils ont juste un cas d'utilisation plus limité que "l'ensemble de la base de données". Pour les requêtes analytiques portant principalement sur des données ajoutées, un magasin en colonnes est une représentation beaucoup plus appropriée que le magasin basé sur des lignes standard, mais toutes les bases de données ne sont pas analytiques.

Cependant, pour obtenir des gains de performances intéressants, vous devez faire bien plus que simplement modifier le stockage sous-jacent :vous devez vous assurer que le reste du système peut tirer parti de la représentation modifiée, afin qu'il puisse exécuter les requêtes de manière optimale ; par exemple, vous voudrez peut-être des agrégats qui fonctionnent en mode SIMD plutôt qu'une valeur à la fois comme c'est le cas aujourd'hui. Ceci, en soi, est une grande entreprise, et il y a aussi d'autres défis.

Il s'avère qu'une équipe de 2ndQuadrant travaille précisément sur ces questions. Nous avons publié un patch l'année dernière, mais ce n'était pas très intéressant - il n'a fait qu'une amélioration en pourcentage à un chiffre des scores TPC-H; pas assez pour déranger la communauté de développement (c'était un patch assez invasif). Nous voulons plus que cela.

Dans notre conception, colonne ou non sera une option :vous pourrez dire Cher serveur, pour cette table, veuillez configurer un stockage en colonne pour moi, voulez-vous ? Merci beaucoup . Et puis vous allez obtenir une table qui peut être plus lente pour une utilisation régulière mais qui basculera pour l'analyse. Pour la plupart de vos tables, le magasin basé sur les lignes actuel sera probablement la meilleure option, car le stockage basé sur les lignes est bien mieux adapté aux cas plus généraux.

Nous n'avons pas encore de calendrier. Restez à l'écoute.