MYSQL

Pengoptimalan dan Perencanaan dalam Eksekusi Queri SQL

シックス , MYSQL
0
996

Optimizer dan Query Execution Plan (QEP)


Ketika server database menerima perintah SQL yang dikirim dari client, maka untuk mengeksekusi perintah tersebut, database perlu untuk melakukan strategi/rencana (plan) agar perintah SQL tersebut dapat dieksekusi dengan se-optimal mungkin.


1. Optimizer

Pembuatan plan ini dapat diibaratkan seperti ketika kita akan menuju ke suatu tempat yang jauh dan meminta bantuan google map untuk mencari rute ke lokasi tersebut. Dari berbagai alternatif rute yang dapat ditempuh, google map akan memberitahu rute tercepat yang dapat ditempuh
Nah demkian juga dengan database. Pada database, bagian yang bertanggung jawab melakukan tugas tersebut bernama optimzer. Optimizer akan membut rencana (plan) apa yang akan dilakukan untuk mengeksekusi sebuah query.


2. Query Execution Plan (QEP)

Dalam membuat plan, optimizer akan mempertimbangkan banyak hal seperti struktur tabel, ukuran tabel, index, dll. Hasil planning tersebut disebut Query Execution Plan (QEP) QEP ini dapat kita lihat melalui statemen EXPLAIN yang akan kita bahas pada bab berikutnya.
Di hamper semua kasus, QEP ini sudah optimal, namun pada satu atau dua kasus QEP tidak optimal sehingga perlu campur tangan dari database administrator (dba/user) untuk mengubahnya menjadi optimal seperti menambahkan klausa FORCE / IGNORE INDEX pada query sehingga memaksa otimizer untuk menggunakan / tidak menggunakan index tertentu, dengan demikian QEP pun berubah


3. Statement

Statemen adalah sebuah Query SQL utuh yang dapat dieksekusi dengan baik. Sebuah statemen biasanya diakhiri dengan tanda titik koma (;). Tanda ini disebut delimiter.

Jika query hanya terdiri dari satu statemen, penggunaan delimiter ini bersifat opsional, sedangkan jika query terdiri dari lebih dari satu statemen, delimiter ini harus digunakan. Umumnya Query terdiri hanya satu statemen, namun pada kondisi tertentu, Query dapat terdiri dari lebih dari satu statemen.
Contoh statemen: statemen SELECT, statemen INSERT, dll


4. Klausa

Klausa merupakan bagian bagian tertentu dari statemen, sehingga cakupnnya nya lebih sempit, misal klausa FROM, klausa SELECT, dst


5. Keyword

Keyword merupakan kata yang digunakan oleh MySQL yang mewakili fungsi tertentu, misal COUNT, SELECT, SUM, dll. Dalam buku ini, terkadang kita menyebut keyword dengan klausa.


Perbedaan ketiga istilah diatas dapat dilihat pada gambar berikut ini:






0 Comments

×