最後に、今年の5月に発表された長いベータ期間が終了しました。 開発者は、さらに優れたパフォーマンス、スケーラビリティ、柔軟性を約束します。
強化されたパフォーマンスとスケーラビリティ
Postgresは64コアプロセッサをサポートするようになり、Postgresの消費電力が削減されました。 ここでは、すべてが明確であり、不必要な逸脱がないことを疑います。
インデックスのみのスキャンメカニズムが実装されています。 これはどんな獣ですか? 実際、Postgresのインデックスには、レコードの可視性に関する情報が含まれていません。 つまり、レコードが表示されるかどうかを理解するために、サーバーは実際のテーブルタプル(タプル)を読み取る必要があります。 インデックスに古いタプルに関する情報が含まれていることがあります。 ソートされたインデックスへのアクセスは、実際のテーブルへのアクセスよりもはるかに高速であり、そのデータは好きなように広げることができることも馬には明らかです。 手短に言えば、バージョン9.2では、あなたの耳でこのフェイントが可能です。 インデックスにはまだレコードの可視性に関する情報は含まれていませんが、開発者はいわゆる「可視性マップ」を実装しました。 数学によると、「可視性マップはずっと前からあります。 新しいリリースでは、サーバーのクラッシュに耐えるように作られており、その結果、正しいことが保証されました。「これらすべておよびその他の詳細については、 Wikiで詳しく説明されています。
改善され洗練されたストリーミングレプリケーション 。 詳細については、 Wikiを参照してください。
甘いから。 JSONのようなネイティブサポートがありました。 Web開発者は大喜びし、ボンネットを空中に投げ出します。 サーバーは、受信データの有効性をチェックし、エラーがある場合は、/からJSONに変換するためのすべての関数が含まれている場所を通知します。 たとえば、 array_to_jsonとrow_to_jsonは、怠け者にとってはただの幸せです。
そして、私にとって最もキラーな機能はRange Typesのサポートでした。 以前は彼らなしで生きることがどのように可能だったかはわかりません。
まず、範囲は離散的または連続的です。 離散型には、 int4range 、 int8range 、 date4rangeなどの組み込み型が含まれます。 連続するには、それぞれnumrange 、 tsrange 、 tstzrange ( ts-タイムスタンプ、 num-数値)。
第二に、範囲を開くことができます...角括弧と丸括弧について覚えていますか? [1; 1]-閉じ、[1; 1)-右側で開くなど
第三に、範囲の制限は「∞」であり、∞! 一年生のジョークを覚えていますか?
- , ?
- π/2.
なぜ私がとてもおかしくてハーモニカを演奏するのかを誰かが理解していない場合は、その前に2つのフィールドを使用してそのようなデータを保存する必要がありました。 そして、ここには演算子、インデックス、制約があります...
測定しますか?
公式テキストには、以前のバージョンとの次の比較番号が含まれています。
- 1秒あたり最大350,000の読み取り要求(4倍高速)
- インデックスのみのスキャンでは、速度が2倍から20倍に向上します。
- 1秒あたり最大14,000のデータレコード(5倍高速)
これらのプゾメルキを信じる価値があるかどうかはわかりません。なぜなら、おそらく合成測定で結果が得られたからです。