Pada awalnya, query dapat dieksekusi dengan baik lancar, namun seiring dengan berjalannya waktu, eksekusi query terasa lambat entah karena query yang tidak optimal atau data yang semakin besar. Jika sudah demikian, maka mau tidak mau kita harus melakukan optimasi query MySQL / MariaDB. Kenapa? karena hal ini akan berdampak signifikan bagi kelangsungan aplikasi kita. Show
Optimasi Query Database MySQL – MariaDB Kami memahami betul pentingnya kecepatan eksekusi query dan dampaknya bagi database administrator maupun user, untuk itu kami telah memikirkan berbagai aspek yang mungkin kita lakukan untuk mengatasi hal tersebut dan menuangkannya pada ebook eksklusif “Optimasi Query MySQL – Maksimalkan Kecepatan Query MySQL / Maria DB Anda”. eBook ini membahas secara mendalam teknik yang diperlukan untuk melakukan optimasi query pada database MySQL maupun MariaDB disertai berbagai contoh kasus query dengan jumlah record cukup besar (lebih dari 1 juta), sehingga dapat mencerminkan kondisi riil dilapangan. Pembahasan oprtimasi query dilakukan mulai dari penggunaan index, seperti kapan perlu menggunakan index, operator yang dapat manfaatkan index, mendeteksi index yang digunakan pada composite index, hingga setting konfigurasi server MySQL/MariaDB agar operasi database dapat maksimal. Selain belajar bagaimana melakukan optimasi query, pada buku ini juga akan belajar bagaimana mengoptimasi aplikasi yang menjalankan query tersebut sehingga sinkron antara aplikasi dan query, dengan demikian aplikasi tidak memperberat eksekusi Query database. Materi Optimasi Query MySQL / MariaDBBerikut ini gambaran singkat pembahasan pada ebook: 1. Memahami Semua Hal Tetang Index.Seperti kita ketahui bahwa untuk mempercepat eksekusi query, kita Wajib menambahkan index pada tabel. Namun ternyata dengan menambahkan index tidak serta merta query menjadi cepat, kenapa? ternyata ada syarat syarat yang harus dipenuhi agar optimizer dapat menggunakan index, seperti operator pembanding yang digunakan. Lebih kompleks lagi ketika filter pada klausa WHERE mengandung lebih dari satu kriteria sehingga memaksa kita untuk membuat beberapa individual index atau yang lebih efektif menggunakan komposit index (multi kolom index). Pada komposit index tidak serta merta semua kolom index digunakan, kita harus teliti lagi apakah benar MySQL menggunakan semua kolom index. 2. Memahami Statement Explain.Ketika mengeksekusi suatu query, MySQL menyusun rencana apa saja yang akan dilakukan untuk mengeksekusi query tersbut. Rencana ini tertuang dalam Query Execution Plan (QEP). Dengan membaca QEP tersebut kita dapat menganalisa efektifitas suatu query. QEP ini dapat kita lihat dengan menggunakan statement Explain, misal:
QEP ini menyajikan informasi detail baik untuk query sederhana maupun query yang kompleks yang melibatkan banyak tabel. Dengan mempelajari dan memahami setiap bagian dari QEP ini, kita dapat menganalisa bagian query mana yang perlu untuk dioptimasi. Pada ebook ini juga dibahas mendalam mengenai visual explain. 3. Profiling Query MySQL/MariaDBKetika MySQL mengeksekusi sebuah Query, banyak tahapan yang dilakukan. Dengan profiling query, kita dapat mengetahui tahapan yang dilakukan MySQL beserta waktu eksekusinya, sebagai contoh jika kita jalankan query berikut ini:
Maka tahapan yang akan dilakukan MySQL adalah:
Dengan membaca dan memahami tahapan query diatas, kita dapat menganalisa tahapan mana yang menyebabkan query menjadi lambat, sehingga kita dapat mengambil tindakan dengan tepat. 4. Slow Query LogKetika sistem sudah berjalan, kita tidak dapat memonitor query satu per satu, query yang awalnya sudah optimal bisa jadi menjadi lambat karena penambahan data atau perubahan struktur tabel, dengan bantuan slow query log, kita dapat mengetahui query apa saja yang berjalan lambat. Cara kerja slow query log ini adalah mencatat kedalam log query yang memerlukan waktu eksekusi melebihi batas yang telah ditentukan. Secara default, fitur ini tidak aktif. Untuk mengakaktifkannya, kita perlu menambahkan parameter pada file konfigurasi, misal pada my.ini:
Log ini dapat disimpan di file maupun tabel slow_log yang ada di database mysql, contoh pada tabel database:
Setelah mengetahui query mana saja yang berjalan lambat (melebihi waktu yang telah ditentukan) kita analisa lebih jauh query tersebut melalui profiling query maupun statemen explain. 5. Memahami Query CacheKetika MySQL mengeksekusi suatu query, MySQL akan menyimpan Query (hanya perintah SELECT) beserta hasilnya di cache. Jika kemudian ada perintah SQL yang sama persis (identik), maka server akan mengambilnya dari cache tanpa perlu mengeksekusi query tersebut, hal ini akan membuat data hasil query dapat di peroleh dengan cepat. Mengerti dan memahami query cache in dapat memberikan pemahaman bagi kita bagaimana menjalankan query sehingga query tersebut dapat dicache. 6. Optimasi Struktur Tabel DatabaseKetika berbicara mengenai optimasi query, maka tidak terlepas dari optimasi tabel, karena meskipun tidak signifikan, pemilihan struktur tabel juga akan mempengaruhi waktu eksekusi query. Hal – hal yang perlu ketika perhatikan ketika menentukan struktur tabel:
Memahami (tidak sekedar mengetahui) hal hal diatas akan membantu kita meningkatkan performa query selain menanamkan habbit dalam diri kita untuk selalu menerapkan best practice dalam setiap pembuatan tabel. 7. Optimasi Query MySQL / MariaDBOptimasi query dapat dilakukan dengan berbagai cara diantaranya menghindari hal-hal yang menyebabkan MySQL memeriksa baris pada tabel satu per satu, hingga mengubah bentuk query (menyusun ulang query). Optimasi query dapat dilakukan dengan berbagai cara, diantaranya:
Pada kondisi tertentu query tidak dapat dioptimasi, misal ketika melibatkan fungsi agregasi pada tabel yang memiliki banyak data. Penjelasan lebih jauh dibahas lengkap pada eBook. 8. Optimasi Konfigurasi Server MySQL / MariaDBServer MySQL dijalankan dengan menggunakan berbagai konfigurasi. Ketika MySQL diinstall dan dijalankan pertama kali, maka mysql akan menggunakan konfigurasi standar, agar dapat lebih optimal, kita dapat menyesuaikan konfigurasi ini sesuai dengan kondisi server yang kita gunakan. Terkait optimasi query, optimasi konfigurasi ini dapat dikelompokkan menjadi tiga bagian, yaitu: optimasi konfigurasi server secara umum, optimasi konfigurasi storage InnoDB, optimasi konfigurasi MyISAM. Pengaturan masing masing konfigurasi disesuaikan dengan keperluan. Setiap item konfigurasi (lihat daftar isi) dibahas lengkap di eBook 9. Optimasi Query MySQL Pada “Big Database”Pada aplikasi yang menyimpan data secara rutin, dari waktu ke waktu jumlah data akan semakin bertambah dan akhirnya pada titik tertentu, database sudah tidak dapat menghandle data tersebut dengan baik, yang artinya, waktu eksekusi query sudah tidak ideal lagi, apapun optimasi yang telah dilakukan. Database dengan jumlah data besar “melebihi batas normal” memerlukan penanganan sendiri karena apapun optimasi yang dilakukan, tidak dapat mendongkrak performa query. Hal-hal yang dapat dilakukan untuk mengoptimasi query database dengan jumlah data besar adalah:
Masing masing cara diatas memiliki kelibihan dan kekurangan, lantas mana yang harus dipilih? Selain materi, ebook juga studi kasus riil membuat resume data dari tabel database dengan jumlah data cukup besar, yaitu 32 juta rows. 10. Optimasi AplikasiSetelah kita berhasil mengoptimasi query dan mendapatkan waktu eksekusi query yang cepat, hal selanjutnya yang perlu diperhatikan adalah aplikasi untuk menjalankan query tersebut. Karena pengambilan data lambat bisa jadi bukan disebabkan oleh perintah query nya melainkan aplikasi yang digunakan untuk menjalankan perintah query tersebut. Hal ini umumnya disebabkan oleh query didalam loop, selain itu seringnya query terpecah pecah, di ebook ini dibahas bagaimana mengatasi hal ini dan bagaimana menggabungkan beberapa query menjadi single query MySQL. 11. Optimasi Insert DataKetika memasukkan data dalam jumlah besar ke tabel database, seringnya proses insert berjalan lama atau bahkan sangat lama. Untuk mengatasi hal tersebut, kita perlu memahami beberapa hal penting diantaranya:
Dengan mengetahui dan memahami hal tersebut diatas, kita dapat mengidentifikasi hal hal yang menyebabkan query insert menjadi lambat dan mengetahui bagaimana cara mengatasinya. Detil e-Book optimasi query MySQL / MariaDBSpesifikasi e-Book:
Fitur:
Untuk siapa? Buku ini cocok bagi Anda yang:
Daftar IsiDaftar isi ebook:
Bonus Chet Sheet “Optimasi Query Database MySQL/MariaDB”Selain e-book, kami juga memberikan bonus eksklusif berupa cheatsheet pdf yang berisi ringkasan dari berbagai materi dalam buku tersebut. Cheat sheet ini merupakan shortcut setelah anda memahami pembahasan yang ada didalam buku. Dengan cheatsheet ini, Anda dapat dengan cepat mengetahui hal hal yang diperlukan untuk mengoptimasi query dan database. Cheat Sheet Optimasi Query Database MySQL Kategori Cheat Sheet:
TestimoniBeberapa testimoni pembaca eBook Jagowebdev.com Testimoni dari beberapa dosen perguruan tinggi swasta: Testimoni Dosen PTS Malang – Untuk Bahan Ajar Mahasiswa Testimoni Dari Dosen PTS Solo – Sangat Bermanfaat Bagi Akademisi Testimoni dari mahasiswa: Testimoni Ebook Panduan Query MySQL – Mahasiswa: Puas Banget Dengan Isinya Testimoni dari pembaca lain: Testimoni – Materi jarang ditemui di buku-buku dalam negeri, apalagi di Google, materi advance namun tetap mudah dipahami dan di praktikkan Testimoni Ebook Query MySQL “Penjelasannya Bagus Sekali” Testimoni Ebook Query MySQL “#jenius” Biaya InvestasiPaket diatas merupakan salah satu materi yang disediakan bagi member premium jagowebdev.com. Cukup dengan investasi sebesar Rp. 100.000 Anda sudah dapat menjadi member premium dengan masa keanggotaan selama 1 tahun. Dengan menjadi member premium, Anda dapat mendownload seluruh materi yang ada di halaman member. Harga diatas dapat berubah sewaktu waktu seiring dengan jumlah item yang akan ditambahkan, jadi, jangan lewatkan kesempatan baik ini, segera join disini. Apa itu Slow query?Slow Query Log adalah catatan yang berisi Query SQL yang memerlukan waktu lama dari long_query_time ketika dijalankan.
Bagaimana cara melakukan optimasi query pada MySQL?Cara optimalisasi database mysql. Menggunakan SELECT nama_kolom sebagai ganti SELECT * ... . Buatlah kolom yang penting saja dan minimalisir membuat banyak kolom. ... . Hindari penggunaan DISTINCT pada syntax SQL. ... . Hindari mencari data menggunakan Cartesian atau CROSS JOIN. ... . Gunakan wildcard atau % pada akhiran kata saja.. Langkah langkah optimasi query?Ringkasan dari Tips Optimasi Query. Gunakan kode seragam di seluruh aplikasi standar.. Hindari ketidakcocokan jenis data untuk indeks kolom.. Hindari fungsi pada kolom indeks.. Pindahkan kondisi dari klausa HAVING ke klausa WHERE.. Gunakan joins bukan nested selects, jika memungkinkan.. MySQL query untuk apa?MySQL Query adalah perintah atau instruksi yang dapat digunakan untuk mengelola database atau tabel dalam database MySQL. Query lebih dikenal dengan sebutan SQL (Structured Query Language) yang artinya adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional.
|