DEV Community

Agung Gumelar
Agung Gumelar

Posted on

Ketika AI Mulai Mengatur Query PostgreSQL: Masa Depan Query Optimization

cover

Ketika AI Mulai Mengatur Query PostgreSQL: Masa Depan Query Optimization

Belakangan ini ada diskusi menarik di komunitas database, terutama soal bagaimana model bahasa besar (LLM) mulai masuk ke area yang selama ini dianggap sebagai "wilayah terlarang" bagi AI: Query Optimizer.

Kita semua tahu bahwa PostgreSQL punya optimizer yang sangat solid. Ia menggunakan statistik tabel, histogram, dan biaya estimasi untuk menentukan apakah harus menggunakan Index Scan, Sequential Scan, atau Hash Join. Namun, masalah klasik yang sering kita temui adalah optimizer terkadang salah menebak. Misalnya, saat distribusi data tidak merata atau statistik sudah basi, Postgres bisa saja memilih jalur yang jauh lebih lambat, dan kita terpaksa menggunakan SET enable_seqscan = off atau melakukan hinting secara manual agar performa kembali normal.

Menariknya, ada riset terbaru yang mencoba melatih model AI kecil (sekitar 4 miliar parameter) untuk memprediksi query plan yang lebih efisien daripada optimizer bawaan database. Hasilnya cukup mengejutkan; ada peningkatan kecepatan eksekusi query hingga 81% pada beberapa skenario kompleks.

Pertanyaannya, bagaimana mungkin model AI bisa lebih pintar dari algoritma berbasis biaya yang sudah dikembangkan selama puluhan tahun?

Kuncinya ada pada pola. Optimizer tradisional bekerja berdasarkan aturan statistik saat ini. Sementara itu, AI belajar dari ribuan contoh execution plan yang sudah terbukti berhasil. Ia tidak sekadar menghitung biaya, tapi mengenali "bentuk" query dan menghubungkannya dengan strategi eksekusi yang paling optimal berdasarkan pengalaman dari data historis.

Namun, mengintegrasikan AI langsung ke dalam core database tentu bukan tanpa risiko. Ada masalah latensi. Jika waktu yang dibutuhkan AI untuk memikirkan query plan lebih lama daripada waktu eksekusi query itu sendiri, maka optimasi ini jadi sia-sia. Inilah mengapa penggunaan model kecil (Small Language Models/SLM) menjadi krusial. Model 4B jauh lebih ringan dan bisa memberikan jawaban dalam hitungan milidetik.

Selain itu, ada isu predictability. Engineer database biasanya lebih suka sesuatu yang deterministik. Kalau kita menjalankan query yang sama dua kali, kita ingin rencana eksekusinya tetap sama. AI, secara alamiah, memiliki unsur probabilitas. Menjamin konsistensi hasil di lingkungan produksi adalah tantangan besar berikutnya.

Menurut saya, kita tidak akan melihat AI menggantikan optimizer tradisional sepenuhnya dalam waktu dekat. Justru, masa depan yang lebih masuk akal adalah sistem hibrida. Optimizer bawaan tetap menjadi jalur utama, namun AI bekerja di latar belakang untuk menganalisis query yang lambat, menyarankan rencana alternatif, dan bahkan melakukan self-tuning pada statistik database secara otomatis.

Bayangkan sebuah database yang bisa "belajar" dari setiap query yang dijalankan. Semakin lama aplikasi berjalan, semakin pintar database tersebut dalam mengelola data, tanpa perlu kita campuri dengan optimasi manual yang melelahkan.

Ini adalah pergeseran paradigma. Kita mulai beranjak dari era "mengatur database" menuju era "melatih database". Bagi kita yang terbiasa mengoptimalkan index secara manual, mungkin ini terasa aneh, tapi melihat efisiensi yang bisa dicapai, sulit untuk tidak merasa antusias.

Apakah kalian merasa nyaman jika rencana eksekusi database kalian ditentukan oleh model probabilitas, atau tetap lebih percaya pada perhitungan statistik yang kaku namun terukur?

Top comments (0)