Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Sepuluh Alasan Teratas untuk Bermigrasi dari Oracle ke PostgreSQL

Oracle Relational Database Management System (RDBMS) telah banyak digunakan oleh organisasi besar dan sejauh ini dianggap sebagai teknologi database tercanggih yang tersedia di pasar. Ini biasanya RDBMS yang paling sering dibandingkan dengan produk database lain yang berfungsi sebagai standar "de-facto" dari apa yang harus ditawarkan suatu produk. Ini diberi peringkat oleh db-engines.com sebagai RDBMS #1 yang tersedia di pasar saat ini.

PostgreSQL diberi peringkat sebagai RDBMS #4, tetapi itu tidak berarti tidak ada keuntungan apa pun untuk bermigrasi ke  PostgreSQL. PostgreSQL telah ada sejak 1989 dan open source pada tahun 1996. PostgreSQL memenangkan DBMS tahun ini pada dua tahun berturut-turut dari 2017 dan 2018. Itu hanya menunjukkan tidak ada tanda-tanda berhenti untuk menarik sejumlah besar pengguna dan organisasi besar.

Salah satu alasan mengapa PostgreSQL menarik banyak perhatian adalah karena orang mencari alternatif untuk Oracle sehingga mereka dapat memotong biaya tinggi organisasi dan menghindari penguncian vendor.

Berpindah dari Oracle Database yang berfungsi dan produktif dapat menjadi tugas yang menakutkan. Kekhawatiran seperti TCO (Total Cost of Ownership) perusahaan adalah salah satu alasan mengapa perusahaan menyeret keputusan mereka untuk meninggalkan Oracle atau tidak.

Dalam blog ini kita akan melihat beberapa alasan utama mengapa perusahaan memilih untuk meninggalkan Oracle dan bermigrasi ke PostgreSQL.

Alasan Pertama:Ini adalah Proyek Sumber Terbuka Sejati

PostgreSQL adalah open-source dan dirilis di bawah Lisensi PostgreSQL, lisensi Open Source liberal, mirip dengan lisensi BSD atau MIT. Memperoleh produk dan dukungan tidak memerlukan biaya.

Jika Anda ingin memanfaatkan perangkat lunak database, itu berarti Anda bisa mendapatkan semua fitur database PostgreSQL yang tersedia secara gratis. PostgreSQL telah berusia lebih dari 30 tahun di dunia database dan telah disentuh sebagai open-source sejak tahun 1996. PostgreSQL telah menikmati puluhan tahun para pengembang yang bekerja untuk membuat ekstensi. Itu, dengan sendirinya, membuat pengembang, institusi, dan organisasi memilih PostgreSQL untuk aplikasi perusahaan; mendukung aplikasi bisnis dan seluler terkemuka.

Sekali lagi, organisasi menyadari bahwa solusi database open source seperti Postgres menawarkan kapasitas, fleksibilitas, dan dukungan yang lebih besar yang tidak sepenuhnya bergantung pada satu perusahaan atau pengembang. Postgres, seperti Linux sebelumnya, telah (dan terus) direkayasa oleh pengguna yang berdedikasi memecahkan masalah bisnis sehari-hari yang memilih untuk mengembalikan solusi mereka ke komunitas. Tidak seperti pengembang besar seperti Oracle, yang mungkin memiliki motif berbeda dalam mengembangkan produk yang menguntungkan atau mendukung pasar yang sempit namun menguntungkan, komunitas Postgres berkomitmen untuk mengembangkan alat terbaik bagi pengguna basis data relasional sehari-hari.

PostgreSQL sering melakukan tugas-tugas itu tanpa menambahkan terlalu banyak kerumitan. Desainnya difokuskan secara ketat pada penanganan database tanpa harus membuang sumber daya seperti mengelola lingkungan TI tambahan melalui fitur tambahan. Ini adalah salah satu hal yang disukai oleh konsumen perangkat lunak sumber terbuka ini ketika bermigrasi dari Oracle ke PostgreSQL. Menghabiskan waktu berjam-jam untuk mempelajari teknologi kompleks tentang cara fungsi database Oracle, atau cara mengoptimalkan dan menyempurnakan mungkin akan berakhir dengan dukungannya yang mahal. Ini memikat institusi atau organisasi untuk menemukan alternatif yang dapat mengurangi biaya dan membawa keuntungan dan produktivitas. Silakan lihat blog kami sebelumnya tentang seberapa mampu PostgreSQL untuk mencocokkan keberadaan sintaks SQL dengan sintaks Oracle.

Alasan Kedua:Tidak Ada Lisensi dan Komunitas Besar

Untuk pengguna platform Oracle RDBMS, sulit untuk menemukan dukungan komunitas apa pun yang gratis atau tanpa biaya yang besar. Institusi, organisasi, dan pengembang seringkali akhirnya menemukan alternatif informasi online yang dapat menawarkan jawaban atau solusi untuk masalah mereka secara gratis.

Saat menggunakan Oracle, sulit untuk memutuskan produk tertentu atau apakah akan menggunakan Dukungan Produk karena (biasanya) banyak uang yang terlibat. Anda mungkin mencoba produk tertentu untuk mengujinya, akhirnya membelinya, hanya untuk menyadari bahwa itu tidak dapat membantu Anda. Dengan PostgreSQL, komunitas ini gratis dan penuh dengan pakar yang memiliki pengalaman luas yang dengan senang hati membantu Anda mengatasi masalah Anda saat ini.

Anda dapat berlangganan milis di sini, di https://lists.postgresql.org/ untuk mulai menjangkau komunitas. Pemula atau ahli PostgreSQL sentuh berbasis di sini untuk berkomunikasi, memamerkan, dan berbagi solusi, teknologi, bug, temuan baru atau bahkan berbagi perangkat lunak mereka yang muncul. Anda bahkan dapat meminta bantuan dari obrolan IRC menggunakan irc.freenode.net dan bergabung ke saluran #postgresql. Anda juga dapat menjangkau komunitas melalui Slack dengan bergabung dengan https://postgres-slack.herokuapp.com/ atau https://postgresteam.slack.com/. Ada banyak pilihan untuk diambil dan banyak organisasi Open Source yang dapat menawarkan pertanyaan kepada Anda

Untuk detail dan informasi lebih lanjut tentang mulai dari mana, lihat di sini https://www.postgresql.org/community/.

Jika Anda ingin pergi dan checkout untuk Layanan Profesional di PostgreSQL, ada banyak pilihan untuk dipilih. Bahkan memeriksa situs web mereka di https://www.postgresql.org/support/professional_support/northamerica/, Anda dapat menemukan daftar besar perusahaan di sana dan beberapa di antaranya dengan harga murah. Bahkan di Somenines, kami juga menawarkan Dukungan untuk Postgres, yang merupakan bagian dari lisensi ClusterControl atau Konsultasi DBA.

Alasan Tiga:  Dukungan Luas untuk Kesesuaian SQL

PostgreSQL selalu tertarik untuk beradaptasi dan menyesuaikan diri dengan SQL sebagai standar de facto untuk bahasanya. Nama formal standar SQL adalah ISO/IEC 9075 “Database Language SQL”. Setiap versi revisi yang berurutan dari rilis standar menggantikan yang sebelumnya, sehingga klaim kesesuaian dengan versi sebelumnya tidak memiliki manfaat resmi.

Tidak seperti Oracle, beberapa kata kunci atau operator masih ada yang tidak sesuai dengan standar ANSI SQL (Structured Query Language). Contoh, operator OUTER JOIN (+) dapat mengaitkan kebingungan dengan DBA lain yang belum menyentuh atau yang paling tidak familiar dengan Oracle. PostgreSQL mengikuti standar ANSI-SQL untuk sintaks GABUNG dan memberikan keuntungan untuk melompat dengan mudah dan sederhana dengan database RDBMS open-source lainnya seperti database MySQL/Percona/MariaDB.

Sintaks lain yang sangat umum dengan Oracle adalah menggunakan kueri hierarkis. Oracle menggunakan sintaks START WITH..CONNECT BY non-standar, sedangkan di SQL:1999, kueri hierarkis diimplementasikan melalui ekspresi tabel umum rekursif. Misalnya, kueri di bawah ini membedakan sintaksnya sesuai dengan kueri hierarkis:

Oracle

SELECT

    restaurant_name, 

    city_name 

FROM

    restaurants rs 

START WITH rs.city_name = 'TOKYO'

CONNECT BY PRIOR rs.restaurant_name = rs.city_name;

PostgreSQL

WITH RECURSIVE tmp AS (SELECT restaurant_name, city_name

                                 FROM restaurants

                                WHERE city_name = 'TOKYO'

                                UNION

                               SELECT m.restaurant_name, m.city_name

                                 FROM restaurants m

                                 JOIN tmp ON tmp.restaurant_name = m.city_name)

                  SELECT restaurant_name, city_name FROM tmp;

PostgreSQL memiliki pendekatan yang sangat mirip dengan RDBMS open-source teratas lainnya seperti MySQL/MariaDB.

Menurut manual PostgreSQL, pengembangan PostgreSQL bertujuan untuk kesesuaian dengan versi resmi terbaru dari standar di mana kesesuaian tersebut tidak bertentangan dengan fitur tradisional atau akal sehat. Banyak fitur yang diperlukan oleh standar SQL didukung, meskipun terkadang dengan sintaks atau fungsi yang sedikit berbeda. Faktanya, inilah yang hebat dengan PostgreSQL karena juga didukung dan dikolaborasikan oleh berbagai organisasi, baik itu kecil atau besar. Keindahan tetap pada kesesuaian bahasa SQL dengan apa yang telah didorong oleh standar.

Pengembangan PostgreSQL bertujuan untuk kesesuaian dengan versi resmi terbaru dari standar di mana kesesuaian tersebut tidak bertentangan dengan fitur tradisional atau akal sehat. Banyak fitur yang diperlukan oleh standar SQL didukung, meskipun terkadang dengan sintaks atau fungsi yang sedikit berbeda. Langkah lebih lanjut menuju kesesuaian dapat diharapkan dari waktu ke waktu.

Alasan Empat:Paralelisme Kueri

Agar adil, Paralelisme Query PostgreSQL tidak sekaya jika dibandingkan dengan eksekusi paralel Oracle untuk pernyataan SQL. Di antara fitur paralelisme Oracle adalah antrian pernyataan dengan petunjuk, kemampuan untuk mengatur derajat paralelisme (DOP), menetapkan kebijakan derajat paralel, atau paralelisme adaptif.

PostgreSQL memiliki derajat paralelisme sederhana berdasarkan paket yang didukung, tetapi itu tidak menentukan bahwa Oracle melampaui PostgreSQL open source.

Paralelisme PostgreSQL terus meningkat dan terus ditingkatkan oleh komunitas. Ketika PostgreSQL 10 dirilis, ia menambahkan lebih banyak daya tarik kepada publik terutama peningkatan pada dukungan paralelisme untuk penggabungan gabung, pemindaian heap bitmap, pemindaian indeks dan pemindaian hanya indeks, pengumpulan gabungan, dll. Perbaikan juga menambahkan statistik ke pg_stat_activity.

Dalam versi PostgreSQL <10, paralelisme dinonaktifkan secara default yang Anda perlukan untuk mengatur variabel max_parallel_workers_per_gather.

postgres=# \timing

Timing is on.

postgres=# explain analyze select * from imdb.movies where birthyear >= 1980 and birthyear <=2005;

                                                   QUERY PLAN                                                   

----------------------------------------------------------------------------------------------------------------

 Seq Scan on movies  (cost=0.00..215677.28 rows=41630 width=68) (actual time=0.013..522.520 rows=84473 loops=1)

   Filter: ((birthyear >= 1980) AND (birthyear <= 2005))

   Rows Removed by Filter: 8241546

 Planning time: 0.039 ms

 Execution time: 525.195 ms

(5 rows)



Time: 525.582 ms

postgres=# \o /dev/null 

postgres=#  select * from imdb.movies where birthyear >= 1980 and birthyear <=2005;

Time: 596.947 ms

Rencana kueri mengungkapkan bahwa waktu aktualnya bisa sekitar 522,5 mdtk, kemudian waktu eksekusi kueri sebenarnya sekitar 596,95 mdtk. Sedangkan mengaktifkan paralelisme,

postgres=# set max_parallel_workers_per_gather=2;

Time: 0.247 ms

postgres=# explain analyze select * from imdb.movies where birthyear >= 1980 and birthyear <=2005;

                                                          QUERY PLAN                                                           

-------------------------------------------------------------------------------------------------------------------------------

 Gather  (cost=1000.00..147987.62 rows=41630 width=68) (actual time=0.172..339.258 rows=84473 loops=1)

   Workers Planned: 2

   Workers Launched: 2

   ->  Parallel Seq Scan on movies  (cost=0.00..142824.62 rows=17346 width=68) (actual time=0.029..264.980 rows=28158 loops=3)

         Filter: ((birthyear >= 1980) AND (birthyear <= 2005))

         Rows Removed by Filter: 2747182

 Planning time: 0.096 ms

 Execution time: 342.735 ms

(8 rows)



Time: 343.142 ms

postgres=# \o /dev/null

postgres=#  select * from imdb.movies where birthyear >= 1980 and birthyear <=2005;

Time: 346.020 ms

Rencana kueri menentukan bahwa kueri perlu menggunakan paralelisme dan kemudian menggunakan simpul Gather. Ini adalah perkiraan waktu aktual hingga 339 md dengan 2 pekerjaan dan perkiraan hingga 264 md sebelum dikumpulkan oleh rencana kueri. Sekarang, waktu eksekusi kueri yang sebenarnya membutuhkan waktu 346 md, yang sangat dekat dengan perkiraan waktu aktual dari rencana kueri.

Ini hanya menggambarkan betapa cepat dan bermanfaatnya PostgreSQL. Meskipun PostgreSQL memiliki batasannya sendiri ketika paralelisme dapat terjadi atau ketika rencana kueri menentukan itu lebih cepat daripada menggunakan paralelisme, itu tidak membuat fiturnya menjadi perbedaan besar dari Oracle. Paralelisme PostgreSQL fleksibel dan dapat diaktifkan atau digunakan dengan benar selama kueri Anda cocok dengan urutan yang diperlukan untuk paralelisme kueri.

Alasan Lima:Dukungan JSON Lanjutan dan Selalu Meningkatkan

Dukungan JSON di PostgreSQL selalu setara dengan RDBMS open source lainnya. Lihatlah blog eksternal ini dari LiveJournal di mana dukungan JSON PostgreSQL mengungkapkan untuk selalu lebih maju jika dibandingkan dengan RDBMS lainnya. PostgreSQL memiliki banyak fungsi dan fitur JSON.

Tipe data JSON diperkenalkan di PostgreSQL-9.2. Sejak itu, ia memiliki banyak peningkatan yang signifikan dan di antara tambahan utama muncul di PostgreSQL-9.4 dengan penambahan tipe data JSONB. PostgreSQL menawarkan dua tipe data untuk menyimpan data JSON:json dan jsonb. Dengan jsonb, ini adalah versi lanjutan dari tipe data JSON yang menyimpan data JSON dalam format biner. Ini adalah peningkatan besar yang membuat perbedaan besar pada cara data JSON dicari dan diproses di PostgreSQL.

Oracle juga memiliki dukungan ekstensif terhadap JSON. Sebaliknya, PostgreSQL memiliki dukungan ekstensif serta fungsi yang dapat digunakan untuk pengambilan data, pemformatan data, atau operasi bersyarat yang memengaruhi keluaran data atau bahkan data yang disimpan dalam database. Data yang disimpan dengan tipe data jsonb memiliki keunggulan yang lebih besar dengan kemampuan menggunakan GIN (Generalized Inverted Index) yang dapat digunakan untuk secara efisien mencari kunci atau pasangan kunci/nilai yang terjadi dalam sejumlah besar dokumen jsonb.

PostgreSQL memiliki ekstensi tambahan yang berguna untuk mengimplementasikan TRANSFORM FOR TYPE untuk tipe jsonb ke bahasa prosedur yang didukungnya. Ekstensi ini adalah jsonb_plperl dan jsonb_plperlu untuk PL/Perl. Sedangkan untuk PL/Python adalah jsonb_plpythonu, jsonb_plpython2u, dan jsonb_plpython3u. Misalnya, menggunakan nilai jsonb untuk memetakan array Perl, Anda dapat menggunakan ekstensi jsonb_plperl atau jsonb_plperlu.

ArangoDB telah memposting tolok ukur yang membandingkan kinerja JSON PostgreSQL bersama dengan database dukungan JSON lainnya. Meskipun ini adalah blog lama, tetap saja ini menunjukkan bagaimana kinerja JSON PostgreSQL dibandingkan dengan database lain di mana JSON adalah fitur intinya di kernel database mereka. Hal ini justru membuat PostgreSQL memiliki keunggulan tersendiri meski dengan fitur sampingannya.

Alasan Enam:Dukungan DBaaS Oleh Vendor Cloud Utama

PostgreSQL telah didukung secara luas sebagai DBaaS. Layanan ini berasal dari Amazon, Microsoft dengan Azure Database untuk PostgreSQL, dan Google Cloud SQL untuk PostgreSQL.

Sebagai perbandingan Oracle, hanya tersedia di Amazon RDS untuk Oracle. Layanan yang ditawarkan oleh para pemain utama mulai dari harga yang terjangkau dan sangat fleksibel untuk diatur sesuai dengan kebutuhan Anda. Hal ini membantu institusi dan organisasi untuk melakukan penyiapan yang sesuai dan mengurangi biaya besar yang terikat pada platform Oracle.

Alasan Tujuh:  Penanganan Data Dalam Jumlah Besar yang Lebih Baik

PostgreSQL RDBMS tidak dirancang untuk menangani beban kerja analitis dan pergudangan data. PostgreSQL adalah database berorientasi baris, tetapi memiliki kemampuan untuk menyimpan data dalam jumlah besar. PostgreSQL memiliki batasan berikut untuk menangani penyimpanan data:

Batas

Nilai

Ukuran Basis Data Maksimum

Tidak terbatas

Ukuran Tabel Maksimum

32TB

Ukuran Baris Maksimum

1,6TB

Ukuran Bidang Maksimum

1 GB

Baris Maksimum per Tabel

Tidak terbatas

Kolom Maksimum per Tabel

250-1600 tergantung jenis kolom

Indeks Maksimum per Tabel

Tidak terbatas

Manfaat utama PostgreSQL adalah, ada plugin yang dapat digabungkan untuk menangani data dalam jumlah besar. TimeScaleDB dan CitusData's cstore_fdw adalah salah satu plugin yang dapat Anda gabungkan untuk database deret waktu, menyimpan data besar dari aplikasi seluler, atau data dari aplikasi IoT Anda, atau analitik data atau pergudangan data. Faktanya, ClusterControl menawarkan dukungan untuk TimeScaleDB yang dibuat sederhana namun mudah digunakan.

Jika Anda ingin menggunakan fitur inti PostgreSQL, Anda dapat menyimpan sejumlah besar data menggunakan jsonb. Misalnya, sejumlah besar dokumen (PDF, Word, Spreadsheets) dan simpan ini menggunakan tipe data jsonb. Untuk aplikasi dan sistem geolokasi, Anda dapat menggunakan PostGIS.

Alasan Delapan:Skalabilitas, Ketersediaan Tinggi, Redundansi/Geo-Redundansi, dan Solusi Toleran Kesalahan dengan Harga Murah

Oracle menawarkan solusi serupa, tetapi kuat, seperti Oracle Grid, Oracle Real Application Clusters (RAC), Oracle Clusterware, dan Oracle Data Guard untuk beberapa nama. Teknologi ini dapat menambah biaya Anda yang meningkat dan sangat mahal untuk diterapkan dan dibuat stabil. Sulit untuk membuang solusi ini. Pelatihan dan keterampilan harus ditingkatkan dan dikembangkan orang-orang yang terlibat dalam proses penyebaran dan implementasi.

PostgreSQL memiliki dukungan besar dan memiliki banyak opsi untuk dipilih. PostgreSQL menyertakan streaming dan replikasi logis yang ada di dalam paket inti perangkat lunak. Anda mungkin juga dapat menyiapkan replikasi sinkron untuk PostgreSQL agar memiliki cluster dengan ketersediaan lebih tinggi, sambil membuat node siaga memproses kueri baca Anda. Untuk ketersediaan tinggi, kami sarankan Anda membaca blog kami Solusi Top PG Clustering High Availability (HA) untuk PostgreSQL dan itu mencakup banyak alat dan teknologi hebat untuk dipilih.

Ada juga fitur perusahaan yang menawarkan ketersediaan tinggi, pemantauan, dan solusi pencadangan. ClusterControl adalah salah satu teknologi ini dan menawarkan harga yang terjangkau dibandingkan dengan Solusi Oracle.

Alasan Sembilan:  Dukungan untuk Beberapa Bahasa Prosedural:PL/pgSQL, PL/Tcl, PL/Perl, dan PL/Python.

Sejak versi 9.4, PostgreSQL memiliki fitur hebat di mana Anda dapat menentukan bahasa prosedural baru sesuai dengan pilihan Anda. Meskipun tidak semua variasi bahasa pemrograman didukung, tetapi ada beberapa bahasa yang didukung. Saat ini, dengan distribusi dasar, termasuk PL/pgSQL, PL/Tcl, PL/Perl, dan PL/Python. Bahasa eksternal adalah:

Nama

Bahasa

Situs web

PL/Java

Java

https://tada.github.io/pljava/

PL/Lua

Lua

https://github.com/pllua/pllua

PL/R

R

https://github.com/postgres-plr/plr

PL/sh

Unix shell

https://github.com/petere/plsh

PL/v8

JavaScript

https://github.com/plv8/plv8

Hal yang hebat tentang ini adalah, tidak seperti Oracle, pengembang yang baru terjun ke PostgreSQL dapat dengan cepat memberikan logika bisnis ke sistem aplikasi mereka tanpa perlu waktu lebih lama untuk mempelajari PL/SQL. PostgreSQL membuat lingkungan untuk pengembang lebih mudah dan efisien. Sifat PostgreSQL ini berkontribusi pada alasan mengapa pengembang menyukai PostgreSQL dan mulai beralih dari solusi platform perusahaan ke lingkungan open source.

Alasan Sepuluh:  Indeks Fleksibel untuk Data Besar dan Tekstual (GIN, GiST, SP-GiST, dan BRIN)

PostgreSQL memiliki keuntungan besar dalam hal dukungan indeks yang bermanfaat untuk menangani data besar. Oracle memiliki banyak tipe indeks yang bermanfaat untuk menangani kumpulan data besar juga, terutama untuk pengindeksan teks lengkap. Tetapi untuk PostgreSQL, jenis indeks ini dibuat agar fleksibel sesuai dengan tujuan Anda. Misalnya, jenis indeks ini berlaku untuk data besar:

GIN - (Indeks Terbalik Umum) 

Jenis indeks ini berlaku untuk kolom tipe data jsonb, hstore, range, dan arrays. Ini berguna ketika Anda memiliki tipe data yang berisi beberapa nilai dalam satu kolom. Menurut dokumen PostgreSQL, “GIN dirancang untuk menangani kasus di mana item yang akan diindeks adalah nilai komposit, dan kueri yang akan ditangani oleh indeks perlu mencari nilai elemen yang muncul di dalam item komposit. Misalnya, item dapat berupa dokumen, dan kueri dapat berupa penelusuran dokumen yang berisi kata-kata tertentu.”

GiST - (Pohon Pencarian Umum)

Pohon pencarian dengan tinggi yang seimbang yang terdiri dari halaman simpul. Node terdiri dari baris indeks. Setiap baris dari simpul daun (leaf row), secara umum, berisi beberapa predikat (ekspresi boolean) dan referensi ke baris tabel (TID). Indeks GiST adalah yang terbaik jika Anda menggunakan ini untuk tipe data geometris seperti, Anda ingin melihat apakah dua poligon berisi beberapa titik. Dalam satu kasus titik tertentu dapat terkandung dalam kotak, sementara titik lain hanya ada dalam satu poligon. Tipe data yang paling umum di mana Anda ingin memanfaatkan indeks GiST adalah tipe geometri dan teks ketika berhadapan dengan pencarian teks lengkap

Dalam memilih jenis indeks yang akan digunakan, GiST atau GIN, pertimbangkan perbedaan kinerja berikut:

  • Pencarian indeks GIN sekitar tiga kali lebih cepat daripada GiST
  • Indeks GIN membutuhkan waktu sekitar tiga kali lebih lama untuk dibuat daripada GiST
  • Indeks GIN sedikit lebih lambat untuk diperbarui daripada indeks GiST, tetapi sekitar 10 kali lebih lambat jika dukungan pembaruan cepat dinonaktifkan
  • Indeks GIN dua hingga tiga kali lebih besar dari indeks GiST

Sebagai aturan praktis, indeks GIN paling baik untuk data statis karena pencarian lebih cepat. Untuk data dinamis, indeks GiST lebih cepat diperbarui.

SP-GiST - (Space Partitioned GiST) 

Untuk kumpulan data yang lebih besar dengan pengelompokan yang alami tetapi tidak merata. Jenis indeks ini memanfaatkan pohon partisi ruang. Indeks SP-GiST paling berguna ketika data Anda memiliki elemen pengelompokan alami, dan juga bukan pohon yang seimbang. Contoh yang bagus untuk ini adalah nomor telepon, misalnya di AS, mereka menggunakan format berikut:

  • 3 digit untuk kode area
  • 3 digit untuk awalan (secara historis terkait dengan sakelar operator telepon)
  • 4 digit untuk nomor baris

Ini berarti bahwa Anda memiliki beberapa pengelompokan alami di sekitar kumpulan 3 digit pertama, di sekitar kumpulan 3 digit kedua, kemudian angka-angka dapat menyebar dalam distribusi yang lebih merata. Tapi, dengan nomor telepon beberapa kode area memiliki saturasi yang jauh lebih tinggi daripada yang lain. Hasilnya mungkin pohon itu sangat tidak seimbang. Karena pengelompokan alami di depan dan distribusi data yang tidak merata–data seperti nomor telepon dapat menjadi alasan yang baik untuk SP-GiST.

BRIN - (Blokir Indeks Rentang) 

Untuk kumpulan data yang sangat besar yang berbaris secara berurutan. Rentang blok adalah sekelompok halaman yang berdekatan satu sama lain, di mana ringkasan informasi tentang semua halaman tersebut disimpan dalam Indeks. Indeks rentang blok dapat fokus pada beberapa kasus penggunaan yang serupa dengan SP-GiST karena mereka paling baik ketika ada beberapa pengurutan alami pada data, dan datanya cenderung sangat besar. Punya tabel rekor miliaran terutama jika itu adalah data deret waktu? BRIN mungkin bisa membantu. Jika Anda menanyakan sekumpulan besar data yang secara alami dikelompokkan bersama seperti data untuk beberapa kode pos (yang kemudian digulirkan ke beberapa kota), BRIN membantu memastikan bahwa kode pos serupa terletak berdekatan satu sama lain di disk.

Bila Anda memiliki kumpulan data yang sangat besar yang diurutkan seperti tanggal atau kode pos, indeks BRIN memungkinkan Anda untuk melewati atau mengecualikan banyak data yang tidak perlu dengan sangat cepat. BRIN juga dipertahankan sebagai indeks yang lebih kecil dibandingkan dengan ukuran data keseluruhan, menjadikannya keuntungan besar ketika Anda memiliki kumpulan data yang besar.

Kesimpulan

PostgreSQL memiliki beberapa keunggulan utama saat bersaing dengan platform perusahaan dan solusi bisnis Oracle. Sangat mudah untuk memuji PostgreSQL sebagai RDBMS open source pilihan Anda karena hampir sekuat Oracle.

Oracle sulit dikalahkan (dan itu adalah kebenaran yang sulit diterima) dan juga tidak mudah untuk membuang platform perusahaan raksasa teknologi itu. Ketika sistem memberi Anda kekuatan dan hasil yang produktif, itu bisa menjadi dilema.

Terkadang meskipun ada situasi di mana keputusan harus dibuat karena investasi berlebihan yang berkelanjutan pada biaya platform Anda dapat melebihi biaya lapisan dan prioritas bisnis Anda yang lain yang dapat memengaruhi kemajuan.

PostgreSQL dan solusi platform dasarnya dapat menjadi pilihan untuk membantu Anda mengurangi biaya, meringankan masalah anggaran Anda; semua dengan perubahan sedang hingga kecil.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan `SELECT` untuk memanggil fungsi

  2. Bagaimana SID berbeda dari nama Layanan di Oracle tnsnames.ora

  3. Cara Menghapus "X Rows Selected" di SQLcl &SQL*Plus (Oracle)

  4. Perbarui baris dalam satu tabel dengan data dari tabel lain berdasarkan satu kolom di masing-masing menjadi sama

  5. Bagaimana cara mematikan kedaluwarsa kata sandi Oracle?