官术网_书友最值得收藏!

Understanding new storage-related features

Let's now turn our attention to one of the biggest achievements (in my judgment) of the past 10 years in the PostgreSQL universe: pluggable storage engines. What is the general problem? For the past, roughly, 30 years, the PostgreSQL community has focused its attention and development efforts on one single storage engine, the heap. While a general-purpose storage engine performs well in many cases, some situations demand different approaches to storage. This is especially true if you are running analytics or high volumes of UPDATE statements changing millions or even billions of rows, given an OLTP workload.

So, what is the problem with a conventional row store? Suppose you are running analytics on a large table. Your table might consist of dozens of columns and you have got to read them all to retrieve just a handful of columns. Of course, this is inefficient. By storing data in a column-oriented way, you have only got to fetch the data you really needed. But there is more to this: the content of a column contains a lot more redundancy than a row. id, name, date is definitely less redundant than name, name, name.

In short, you can apply a lot more optimizations for certain workloads. However, this is not true for all kinds of applications. A classical row store is king if you are running classical OLTP operations or if you tend to need the entire row anyway.

The bottom line is: PostgreSQL 12 offers great opportunities for future developments and will lead the way for an explosion of storage engines. 

主站蜘蛛池模板: 阳春市| 南昌市| 勐海县| 顺平县| 双鸭山市| 高要市| 昌图县| 象州县| 镇安县| 社旗县| 张家界市| 天水市| 云和县| 酒泉市| 莱芜市| 鄂温| 绍兴市| 麦盖提县| 绍兴市| 申扎县| 咸丰县| 尼玛县| 乐都县| 延寿县| 六枝特区| 商丘市| 衡水市| 娄底市| 文化| 奉节县| 舞阳县| 武汉市| 遂川县| 林州市| 宁德市| 太仆寺旗| 衡东县| 峡江县| 盖州市| 永宁县| 麻栗坡县|