Sistem basis data sering membutuhkan penyetelan untuk kinerja terbaik. Lukas Vileikis menjelaskan cara mengoptimalkan my. cnf untuk kinerja MySQL Show
Sejak awal rekayasa perangkat lunak, pengembang beralih ke database untuk menyimpan data mereka – seiring berjalannya waktu, beberapa pengembang dapat memilih jalur mereka dengan lebih jelas. beberapa mulai menggunakan PostgreSQL, beberapa memilih MySQL atau variannya (MariaDB atau Percona Server), beberapa menggunakan solusi berbasis NoSQL seperti MongoDB Pengembang yang memilih untuk menggunakan MySQL, bagaimanapun, dengan cepat menyadari bahwa sistem manajemen basis data tidak begitu kuat secara default dan mulai mencari cara untuk meningkatkan kinerja, keamanan, dan ketersediaan tinggi di luar kemampuan standarnya; . cnf Apa milikku. cnf dan apa fungsinya?Untuk menjawab pertanyaan bagaimana cara mengoptimalkan my. cnf untuk kinerja, saya akan mulai dengan dasar-dasarnya. saya. File cnf adalah file konfigurasi utama yang tersedia dalam MySQL dan semua rasanya. File tersebut berisi berbagai parameter yang dapat dikonfigurasi sesuai kebutuhan. Parameter ini kemudian akan dimuat ke MySQL saat sistem manajemen basis data dijalankan. Ada beberapa lokasi di mana my. file cnf dapat ditemukan (lokasi berbeda tergantung pada jenis Linux yang digunakan). MySQL biasanya memuat pengaturan dari file setelah menemukannya di salah satu lokasi berikut
Path ke direktori yang berisi my. cnf juga dapat didefinisikan dengan mengubah nilai variabel Setelah membuka my. cnf, Anda akan melihat sesuatu yang mirip dengan yang berikut ini
Gambar 1 – beberapa pengaturan yang tersedia dalam my. cnf Seperti yang Anda lihat, file menyimpan banyak sekali parameter – beberapa di antaranya lebih penting untuk kinerja, yang lain lebih sedikit. Versi Windows saya. cnf (saya. ini) juga dikenal luas karena fakta bahwa file tersebut menyertakan banyak komentar (lihat gambar di atas). Versi Windows menjelaskan hampir semuanya, sementara Linux tidak begitu murah hati; . Terlepas dari itu, satu pernyataan benar. untuk mengoptimalkan kinerja MySQL, optimalkan pengaturan di dalam my. cnf Beberapa dari Anda mungkin masih ingat dengan artikel sebelumnya tentang nuansa indeks di MySQL. Artikel itu menyebutkan bahwa salah satu mesin penyimpanan utama yang tersedia dalam MySQL, InnoDB. Ada beberapa parameter di my. cnf yang sangat penting untuk kinerja InnoDB dan yang perlu dioptimalkan untuk mendapatkan yang terbaik dari MySQL, dan pernyataan itu berlaku untuk semua mesin penyimpanan yang tersedia dalam sistem manajemen basis data. Insinyur yang bekerja dengan MySQL biasanya memilih mesin penyimpanan yang ingin mereka gunakan sesuai dengan kebutuhan mereka, memodifikasi cnf. ini untuk mendapatkan yang terbaik dari mesin, dan restart MySQL. Setelah MySQL dimulai ulang, teknisi dapat menikmati kinerja, ketersediaan, dan, dalam beberapa kasus, manfaat keamanan yang lebih baik Bagaimana mengoptimalkan saya. cnf untuk kinerja?Saat melihat segala sesuatu dari perspektif yang lebih luas, optimalkan my. cnf untuk kinerja tidak terlalu sulit. Semuanya bermuara pada dua hal
Itu saja, sungguh – tidak ada yang rumit Mulailah dengan memilih mesin penyimpanan dengan tabel ini untuk menyederhanakan pilihan Anda Mesin Penyimpanan Kapan Menggunakan? InnoDB / Percona XtraDB InnoDB harus dipilih ketika database mendukung produk perangkat lunak kasus penggunaan umum atau jika Anda tidak yakin apa yang harus digunakan untuk mendapatkan yang terbaik dari MySQL MyISAM Mesin penyimpanan usang, sebaiknya hanya digunakan jika Anda membutuhkan jumlah baris yang tepat di tabel tertentu. Jika digunakan sebagai mesin penyimpanan utama, MyISAM dapat menjadi penyebab crash dan kehilangan data PENYIMPANAN Mesin penyimpanan semacam itu menyimpan semua data dalam memori CSV Mesin penyimpanan semacam itu menyimpan data sebagai file CSV MERGE (sebelumnya MRG_MyISAM) Kumpulan dua atau lebih tabel berbasis MyISAM identik yang seharusnya digunakan sebagai satu tabel ARSIP Mesin penyimpanan seharusnya membiarkan kami mengarsipkan data FEDERASI Mesin penyimpanan memungkinkan kita mengakses data dari database tanpa menggunakan replikasi atau pengelompokan LUBANG HITAM Mesin penyimpanan harus digunakan untuk tujuan pengujian – semua data yang terkandung di dalamnya akan hilang dalam sekejap CONTOH Harus digunakan sebagai contoh bagaimana membangun mesin penyimpanan baru Terlepas dari banyaknya mesin penyimpanan yang tersedia untuk digunakan, sebagian besar pengembang dan insinyur MySQL menggunakan InnoDB karena secara luas dianggap yang terbaik untuk sebagian besar kasus penggunaan. Sebelumnya, MyISAM juga merupakan opsi yang cukup andal, tetapi karena mesin penyimpanan menjadi usang karena masalah stabilitas dan hal-hal lain, sekarang secara efektif hanya cocok untuk satu tujuan – mengetahui jumlah baris yang tepat dalam sebuah tabel (InnoDB tidak menyediakan itu . ) Mengoptimalkan InnoDB untuk kinerjaMesin penyimpanan InnoDB memiliki opsi ini, antara lain, tersedia dalam my. cnf Gambar 2 – Parameter InnoDB dalam my. cnf Inilah yang dilakukan parameter, satu per satu Parameter Fungsi
Parameter ini menggambarkan lokasi file data (ibdata1) yang relevan dengan InnoDB – ibdata1 menampung semua data yang diperlukan agar InnoDB berfungsi dengan benar
Parameter ini menguraikan ukuran kumpulan buffer yang akan digunakan dalam InnoDB. Kumpulan buffer digunakan untuk meng-cache data dan indeks tabel di dalam InnoDB
Mengatur ukuran file log InnoDB. Semakin besar nilai ini, semakin sedikit waktu pemulihan yang diperlukan jika terjadi kerusakan
Digunakan untuk menulis ke file log
Cara membersihkan log saat melakukan transaksi. MySQL menawarkan tiga nilai - default (1) membuat InnoDB ACID sesuai, sementara 0 atau 2 menukar ACID untuk kecepatan tulis yang lebih cepat
Lamanya waktu dalam detik sebuah transaksi menunggu sebuah baris kunci
Menentukan metode yang digunakan untuk menghapus data. Metode flush sangat penting karena dapat mempengaruhi throughput I/O. Saya tidak akan membahas semua pilihan Anda di sini, tetapi perlu diingat bahwa MySQL menawarkan beberapa metode flush untuk Anda pilih termasuk, tetapi tidak terbatas pada
Dan inilah cara mengoptimalkan masing-masing untuk mendapatkan hasil maksimal dari MySQL saat menggunakan InnoDB
Ini adalah sebagian besar parameter yang perlu Anda optimalkan saat menggunakan InnoDB. Sekarang, restart MySQL, dan pengaturan akan berlaku. Namun, jika Anda memilih untuk menggunakan MyISAM sebagai gantinya (mungkin Anda sedang mencoba beberapa fiturnya atau menggunakannya di server lama yang tidak terlalu penting), ada parameter lain yang harus Anda tinjau Mengoptimalkan MyISAM untuk kinerjaJika Anda menggunakan Windows, gulir ke bawah dari parameter InnoDB, dan Anda akan melihat empat parameter yang relevan dengan MyISAM. Namun, jika Anda pengguna Linux dan ingin menggunakan MyISAM untuk alasan apa pun, perlu diingat bahwa Anda mungkin perlu menambahkan parameter ini secara manual Parameter Apa Fungsinya?
Setara dengan ukuran kumpulan buffer InnoDB – disarankan untuk menetapkan nilai ini menjadi sekitar 40% dari memori yang tersedia di server
Menentukan ukuran buffer yang dialokasikan saat operasi pengurutan dilakukan. Menaikkan parameter ini dari nilai default mungkin membantu meningkatkan kinerja operasi ORDER BY dan GROUP BY – selain itu, parameter ini penting saat membuat indeks atau memperbaiki tabel
Menentukan ukuran buffer yang dialokasikan untuk setiap utas yang melakukan pemindaian tabel penuh (saat database menemukan nilai dengan membaca tabel secara berurutan. )
Parameter ini digunakan untuk beberapa operasi penyortiran untuk membaca baris setelah penyortiran selesai. Parameter dapat digunakan oleh semua tabel, tidak hanya MyISAM – untuk informasi lebih lanjut Parameter lain dalam my. cnfSetelah Anda mengoptimalkan (atau keduanya) kinerja InnoDB dan MyISAM, Anda juga dapat melihat sedikit ke parameter lain yang tersedia untuk dikonfigurasi dalam. cnf Parameter Pentingnya
Meninggalkan parameter ini di dalam my. cnf tanpa nilai apa pun (atau menyertakan parameter ini di dalam file) menonaktifkan mesin penyimpanan FEDERATED dalam MySQL
Parameter ini menentukan direktori dari mana file dapat dimuat ke MySQL saat menggunakan perintah LOAD DATA INFILE – jika direktori yang salah ditentukan, MySQL akan merespons dengan kesalahan
Parameter ini dapat digunakan untuk mengatur mode SQL yang akan digunakan saat MySQL berjalan. Misalnya, parameter "ANSI" mengubah perilaku MySQL untuk berperilaku seperti SQL standar, termasuk "ALLOW_INVALID_DATES" akan menonaktifkan pemeriksaan tanggal sementara tidak menentukan nilai akan mengatur mode SQL menjadi ketat. Lihat dokumentasi untuk penjelasan lebih lanjut
Opsi "lewati-ssl" memungkinkan MySQL untuk menggunakan koneksi yang tidak terenkripsi. Opsi "ssl", di sisi lain, akan menentukan fakta bahwa MySQL akan mencoba terhubung melalui SSL dan gagal jika koneksi aman tidak dapat dibuat
Menentukan lokasi direktori data MySQL. Dapat didefinisikan ulang – mendefinisikan ulang parameter ini dapat berguna untuk alasan keamanan, meskipun tidak jauh dari itu
Menentukan lokasi file log kesalahan dalam MySQL. Lokasi file log kesalahan dapat diubah menggunakan parameter ini, meskipun hal itu dapat dianggap sebagai “keamanan melalui ketidakjelasan. ”
Mendefinisikan mesin penyimpanan default yang digunakan oleh MySQL
Beberapa parameter yang lebih menarik berhubungan dengan pesan kesalahan. Yang pertama menentukan lokasi direktori yang berisi file bahasa yang akan digunakan dalam MySQL ketika terjadi kesalahan, sedangkan yang terakhir menentukan bahasa dari pesan kesalahan. Mendefinisikan ulang parameter ini mungkin sangat berguna untuk instalasi MySQL digunakan oleh mereka yang tidak bisa berbahasa Inggris atau karena alasan lain Tabel yang diberikan seharusnya memberi Anda gambaran kasar tentang seberapa kuat saya. cnf sebenarnya. Tidak hanya dapat digunakan untuk meningkatkan kinerja berbagai mesin penyimpanan, termasuk InnoDB dan MyISAM, tetapi parameter yang terkandung di dalam file juga sangat berguna untuk menyelesaikan berbagai jenis operasi. Namun, satu hal yang tidak boleh dilupakan – setiap kali Anda mengubah nilai parameter apa pun yang terdapat di dalam my. cnf, Anda harus me-restart server untuk memastikan bahwa perubahan Anda telah diterapkan Mengoptimalkan saya. cnf untuk kinerja MySQLSaya harap artikel ini memberi Anda gambaran tentang betapa kuatnya binatang buas saya. cnf bisa digunakan dengan benar. Parameter dalam my. cnf sering digunakan untuk meningkatkan kinerja berbagai mesin penyimpanan serta kueri, mereka dapat digunakan untuk mengatur replikasi dan membuat MySQL mampu melakukan berbagai macam hal lainnya. Saya harap artikel ini telah membantu Anda mempelajari bagaimana Anda harus menggunakan parameter dalam my. cnf untuk menyesuaikan MySQL dan membuatnya tampil lebih baik dari sebelumnya. Pastikan untuk mempertimbangkan saran dalam artikel ini dan menguji air sebelum melakukan tindakan apa pun pada server produksi, dan sampai jumpa di yang berikutnya Robert Sheldon 07 Oktober 2022 Robert Sheldon 07 Oktober 2022Memperkenalkan pernyataan MySQL INSERT 3 3 Lukas Vileikis 31 Januari 2023 Lukas Vileikis 31 Januari 2023Mengoptimalkan Query di MySQL. Mengoptimalkan Bacaan 1 Bagaimana cara menemukan CNF saya di MySQL?cnf terletak di /etc/mysql/my. cnf .
Bagaimana cara membuat file CNF saya di MySQL?Mengedit Mysql my. . Masuk ke server Anda melalui SSH Untuk mengedit pengaturan MySQL dengan nano ketik berikut ini. . Temukan baris untuk diedit. . Untuk meningkatkan max_connections menjadi 110 ubah menjadi berikut ini. . Masukkan Ctrl + O ke "WriteOut" atau simpan pengaturan Kemudian Ctrl + X untuk keluar Restart MySQL dengan mengetik berikut ini Bagaimana cara membuka CNF saya?Garis komando
. Masuk ke server Anda sebagai root, lalu gunakan editor teks favorit Anda untuk membuka file. Simpan file ini, lalu mulai ulang layanan SQL
Di mana file CNF MySQL Ubuntu?Secara default, datadir diatur ke /var/lib/mysql di /etc/mysql/mysql. conf. d/mysqld. file cnf. |