sql >> データベース >  >> RDS >> PostgreSQL

列ストアプラン

    pgsql-generalで、BráulioBhavamitraは次のように質問します。

    これは非常に興味深い質問です。現在の行ベースのストアを完全に置き換えることは良い考えではありません。それは非常に効果的であり、完全に列型ストアに置き換えることは、OLTPのユースケースにとってパフォーマンス面で悲惨な結果になると確信しています。

    >

    いくつかの列。 FlickrのYimingSunの画像提供

    それは、円柱状の店が一般的に悪い考えであるという意味ではありません—そうではないからです。 「データベース全体」よりもユースケースが限られています。追加の分析クエリの場合、ほとんどの場合、列型ストアは通常の行ベースのストアよりもはるかに適切な表現ですが、すべてのデータベースが分析的であるとは限りません。

    ただし、興味深いパフォーマンスの向上を実現するには、基盤となるストレージを変更するだけでなく、システムの残りの部分が変更された表現を利用できるようにして、クエリを最適に実行できるようにする必要があります。たとえば、現在のように一度に1つの値ではなく、SIMDモードで動作する集計が必要な場合があります。これ自体は大きな仕事であり、他にも課題があります。

    結局のところ、2ndQuadrantには、これらの問題に正確に取り組んでいるチームがいます。昨年パッチを投稿しましたが、それほど面白くはありませんでした。TPC-Hスコアが1桁向上しただけです。開発コミュニティを煩わせるには十分ではありません(かなり侵襲的なパッチでした)。それ以上のものが欲しい。

    私たちの設計では、列型かどうかがオプションになります。親愛なるサーバー、このテーブルは私のために列型ストレージを設定してくれますか?どうもありがとうございました 。次に、通常の使用では遅くなる可能性がありますが、分析では揺るぎないテーブルを取得します。ほとんどのテーブルでは、行ベースのストレージがより一般的なケースにはるかに適しているため、現在の行ベースのストアが依然として最良のオプションである可能性があります。

    まだタイムスケールはありません。しばらくお待ちください。


    1. Python SQL – PythonでSQLite、MySQL、およびPostgreSQLデータベースを使用する方法

    2. java.library.pathにocijdbc9がありません

    3. 現在のトランザクションレベルを見つける方法は?

    4. MySQLの複数のテーブルからのCOUNT(*)