PostgreSQL

Cara Membuat Indeks di PostgreSQL

Cara Membuat Indeks di PostgreSQL

Indeks adalah tabel pencarian khusus yang digunakan oleh mesin pencari bank data untuk mempercepat hasil kueri. Indeks adalah referensi ke informasi dalam tabel. Misalnya, jika nama dalam buku kontak tidak diurutkan menurut abjad, Anda harus menelusuri setiap baris dan menelusuri setiap nama sebelum mencapai nomor telepon tertentu yang Anda cari. Indeks mempercepat perintah SELECT dan frasa WHERE, melakukan entri data dalam perintah UPDATE dan INSERT. Terlepas dari apakah indeks dimasukkan atau dihapus, tidak ada dampak pada informasi yang terkandung dalam tabel. Indeks bisa menjadi khusus dengan cara yang sama bahwa batasan UNIK membantu menghindari catatan replika di bidang atau kumpulan bidang yang indeksnya ada.

Sintaks Umum

Sintaks umum berikut digunakan untuk membuat indeks:.

>> CREATE INDEX index_name PADA table_name (nama_kolom);

Untuk mulai mengerjakan indeks, buka pgAdmin Postgresql dari bilah aplikasi. Anda akan menemukan opsi 'Server' ditampilkan di bawah. Klik kanan opsi ini dan hubungkan ke database.

Seperti yang Anda lihat, database 'Test' tercantum dalam opsi 'Databases'. Jika Anda tidak memilikinya, klik kanan 'Databases', navigasikan ke opsi 'Create', dan beri nama database sesuai dengan preferensi Anda.

Perluas opsi 'Skema', dan Anda akan menemukan opsi 'Tabel' tercantum di sana. Jika Anda tidak memilikinya, klik kanan padanya, navigasikan ke 'Buat,' dan klik opsi 'Tabel' untuk membuat tabel baru. Karena kami telah membuat tabel 'emp', Anda dapat melihatnya di daftar.

Coba kueri SELECT di Editor Kueri untuk mengambil catatan tabel 'emp', seperti yang ditunjukkan di bawah ini.

>> PILIH * DARI publik.emp ORDER OLEH “id” ASC;

Data berikut akan berada di tabel 'emp'.

Buat Indeks Satu Kolom

Perluas tabel 'emp' untuk menemukan berbagai kategori, e.g., Kolom, Batasan, Indeks, dll. Klik kanan 'Indeks', navigasikan ke opsi 'Buat', dan klik 'Indeks' untuk membuat indeks baru.

Buat indeks untuk tabel 'emp' yang diberikan, atau tampilan yang terjadi, menggunakan jendela dialog Indeks. Di sini, ada dua tab: 'Umum' & 'Definisi.' Di tab 'Umum', masukkan judul khusus untuk indeks baru di bidang 'Nama'. Pilih 'tablespace' di mana indeks baru akan disimpan menggunakan daftar drop-down di sebelah 'Tablespace.'  Seperti di area 'Komentar', buat komentar indeks di sini. Untuk memulai proses ini, navigasikan ke tab 'Definisi'.

Di sini, tentukan 'Metode Akses' dengan memilih tipe indeks. Setelah itu, untuk membuat indeks Anda sebagai 'Unik', ada beberapa opsi lain yang tercantum di sana. Di Area 'Kolom', ketuk tanda '+', dan tambahkan nama kolom yang akan digunakan untuk pengindeksan. Seperti yang Anda lihat, kami telah menerapkan pengindeksan hanya ke kolom 'Telepon'. Untuk memulai, pilih bagian SQL.

Tab SQL menunjukkan perintah SQL yang telah dibuat oleh input Anda sepanjang dialog Indeks Index. Klik tombol 'Simpan' untuk membuat indeks.

Sekali lagi, buka opsi 'Tabel', dan navigasikan ke tabel 'emp'. Refresh opsi 'Indexes', dan Anda akan menemukan indeks 'index_on_phone' yang baru dibuat terdaftar di dalamnya.

Sekarang, kita akan menjalankan perintah EXPLAIN SELECT untuk memeriksa hasil indeks dengan klausa WHERE. Ini akan menghasilkan output berikut, yang mengatakan, 'Seq Scan on emp.' Anda mungkin bertanya-tanya mengapa ini terjadi saat Anda menggunakan indeks.

Alasan: Perencana Postgres dapat memutuskan untuk tidak memiliki indeks karena berbagai alasan. Ahli strategi membuat keputusan terbaik hampir sepanjang waktu, meskipun alasannya tidak selalu jelas. Tidak apa-apa jika pencarian indeks digunakan dalam beberapa kueri, tetapi tidak semuanya. Entri yang dikembalikan dari salah satu tabel dapat bervariasi, tergantung pada nilai tetap yang dikembalikan oleh kueri. Karena ini terjadi, pemindaian urutan hampir selalu lebih cepat daripada pemindaian indeks, yang menunjukkan bahwa mungkin perencana kueri benar dalam menentukan bahwa biaya menjalankan kueri dengan cara ini berkurang.

Buat Beberapa Indeks Kolom

Untuk membuat indeks multi-kolom, buka shell baris perintah dan pertimbangkan tabel berikut 'siswa' untuk mulai mengerjakan indeks dengan banyak kolom.

>> PILIH * DARI Siswa;

Tulis kueri CREATE INDEX berikut di dalamnya. Kueri ini akan membuat indeks bernama 'new_index' di kolom 'nama' dan 'usia' pada tabel 'siswa'.

>> CREATE INDEX new_index ON Siswa (nama, umur);

Sekarang, kita akan membuat daftar properti dan atribut dari indeks 'new_index' yang baru dibuat menggunakan perintah '\d'. Seperti yang Anda lihat pada gambar, ini adalah indeks tipe btree yang diterapkan pada kolom 'nama' dan 'usia'.

>> \d indeks_baru;

Buat Indeks UNIK

Untuk membuat indeks unik, asumsikan tabel 'emp' berikut:.

>> PILIH * DARI emp;

Jalankan kueri CREATE UNIQUE INDEX di shell, diikuti dengan nama indeks 'empind' di kolom 'nama' dari tabel 'emp'. Di output, Anda dapat melihat bahwa indeks unik tidak dapat diterapkan ke kolom dengan nilai 'nama' duplikat.

>> BUAT EMPIND INDEKS unik PADA emp (nama);

Pastikan untuk menerapkan indeks unik hanya untuk kolom yang tidak mengandung duplikat. Untuk tabel 'emp', Anda dapat berasumsi bahwa hanya kolom 'id' yang berisi nilai unik. Jadi, kami akan menerapkan indeks unik untuk itu.

>> BUAT EMPIND INDEKS unik PADA emp (id);

Berikut ini adalah atribut dari indeks unik:.

>> \d empid;

Jatuhkan Indeks

Pernyataan DROP digunakan untuk menghapus indeks dari tabel.

>> DROP INDEX empind;

Kesimpulan

Sementara indeks dirancang untuk meningkatkan efisiensi basis data, dalam beberapa kasus, tidak mungkin menggunakan indeks. Saat menggunakan indeks, aturan berikut harus diperhatikan:

10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...
5 Game Arkade Terbaik untuk Linux
Saat ini, komputer adalah mesin serius yang digunakan untuk bermain game. Jika Anda tidak bisa mendapatkan skor tinggi baru, Anda akan tahu apa yang s...
Pertempuran Untuk Wesnoth 1.13.6 Pengembangan Dirilis
Pertempuran Untuk Westnoth 1.13.6 dirilis bulan lalu, adalah rilis pengembangan keenam dalam 1.13.x series dan memberikan sejumlah peningkatan, teruta...