PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL 11:Yang Baru

Rilis terbaru dan terhebat dari PostgreSQL, v11, akan dirilis akhir pekan ini! Berikut ini sekilas fitur-fitur baru dalam versi ini.

Peningkatan Partisi

Serangkaian peningkatan terbesar adalah untuk dukungan partisi. Postgres 11 mendukung:

  • memperbarui baris dapat memindahkannya melintasi partisi
  • partisi default
  • pembuatan indeks otomatis
  • batasan kunci asing didukung pada tabel yang dipartisi
  • indeks unik
  • agregasi menekan ke partisi
  • partisi dengan hash
  • anak partisi di server jauh (postgres_fdw) dapat diperbarui
  • INSERT..ON CONFLICT didukung pada tabel yang dipartisi
  • rencana kueri yang lebih efisien dan eksekusi kueri yang lebih cepat

Baca lebih lanjut tentang peningkatan ini di sini.

Lebih Banyak Paralelisme

Ada banyak perbaikan di seluruh papan terkait dengan peningkatan paralelisme. Menggabungkan, menggabungkan, membuat tabel, dan tampilan dengan “CREATE..AS SELECT”, pembuatan indeks btree, dan manfaat lainnya dari perubahan ini.

Berikut adalah artikel tentang peningkatan kinerja pembuatan indeks di Postgres 11.

Kueri yang Dipenuhi JIT

Meskipun dinonaktifkan secara default di 11, kompilasi kueri JIT berbasis LLVM sekarang sudah terpasang di Postgres. Server sekarang dapat memilih untuk mengkompilasi kueri tertentu (yang memiliki perkiraan eksekusi lebih tinggi dari ambang batas) menggunakan LLVM, menghasilkan kueri yang lebih cepat. Kompilasi ini otomatis dan transparan untuk aplikasi.

Berikut beberapa angkanya.

Meliputi Indeks

Meliputi indeks, tersedia di RDBMS lain tetapi tidak PostgreSQL, telah ditambahkan sekarang. Dengan ini, dimungkinkan untuk memiliki indeks seperti ini (sintaks baru):

CREATE INDEX empid_idx ON employees(empid) INCLUDE (empname);

Indeks semacam itu menyertakan atribut tambahan (di sini "nama empulur") dalam indeks itu sendiri, dan memungkinkan untuk memenuhi kueri seperti:

SELECT empname FROM employees WHERE empid BETWEEN 1000 and 2000;

sepenuhnya menggunakan pemindaian hanya indeks dan tidak menyentuh heap sama sekali.

Baca lebih lanjut tentang meliput indeks di sini.

Prosedur Tersimpan

Prosedur tersimpan adalah contoh lain dari PostgreSQL yang mengejar RDBMS lain. Mereka tentu saja, mirip dengan fungsi tersimpan yang telah didukung PostgreSQL sejak lama, tetapi satu hal besar yang mungkin hanya menggunakan prosedur adalah kontrol transaksi. Anda dapat melakukan dan mengembalikan transaksi dari dalam prosedur yang tersimpan.

Lihat dokumentasi CREATE PROCEDURE.

Menambahkan Kolom ke Tabel

Mengubah tabel untuk menambahkan kolom NOT NULL baru dengan nilai DEFAULT sedikit merepotkan di PostgreSQL, karena ini menyebabkan server menulis ulang seluruh tabel. Dengan v11 sekarang dimungkinkan untuk memiliki pernyataan DDL seperti ini:

ALTER TABLE users ADD COLUMN foo_factor integer NOT NULL DEFAULT 42;

mengeksekusi dalam waktu yang konstan. Baris tidak disentuh saat ini dijalankan, dan sebaliknya diperbarui dengan "malas".

Baca selengkapnya tentang fitur ini di sini.

Fungsi SHA

Dan akhirnya, Anda yang menggunakan pgcrypto hanya untuk fungsi SHA sekarang dapat beralih menggunakan yang sudah ada di dalam PostgreSQL 11

bench=# \df pg_catalog.sha*
                          List of functions
   Schema   |  Name  | Result data type | Argument data types | Type
------------+--------+------------------+---------------------+------
 pg_catalog | sha224 | bytea            | bytea               | func
 pg_catalog | sha256 | bytea            | bytea               | func
 pg_catalog | sha384 | bytea            | bytea               | func
 pg_catalog | sha512 | bytea            | bytea               | func
(4 rows)

bench=# SELECT sha256('hello');
                               sha256
--------------------------------------------------------------------
 \x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
(1 row)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memindahkan aplikasi Rails yang ada ke heroku? (sqlite ke postgres)

  2. Prioritas berdasarkan waktu dalam Permintaan Rekaman Aktif

  3. Bagaimana cara menentukan hari terakhir bulan sebelumnya menggunakan PostgreSQL?

  4. Bisakah PostgreSQL mengindeks kolom array?

  5. Hal-Hal Utama yang Harus Dipantau di PostgreSQL - Menganalisis Beban Kerja Anda