Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

15 Tips Penyesuaian dan Pengoptimalan Kinerja MySQL/MariaDB yang Berguna

MySQL adalah Sistem Manajemen Basis Data Relasional open source yang kuat atau singkatnya RDBMS . Itu dirilis kembali pada tahun 1995 (20 tahun). Ini menggunakan Bahasa Kueri Terstruktur yang mungkin merupakan pilihan paling populer untuk mengelola konten dalam database. Versi MySQL terbaru adalah 5.6.25 dan dirilis pada 29 Mei 2015 .

Fakta menarik tentang MySQL adalah fakta bahwa nama tersebut berasal dari Michael Widenius (Pencipta MySQL) putri Saya. Bahkan meskipun ada banyak fakta menarik tentang MySQL, artikel ini dimaksudkan untuk menunjukkan kepada Anda beberapa praktik yang berguna untuk membantu Anda mengelola server MySQL Anda.

Pada bulan April 2009 proyek MySQL dibeli oleh Oracle. Akibatnya garpu komunitas MySQL disebut MariaDB telah dibuat. Alasan utama untuk membuat fork adalah untuk menjaga agar proyek tetap gratis di bawah Lisensi Publik Umum.

Hari ini MySQL dan MariaDB adalah salah satu RDBMS yang paling (jika bukan yang paling) sering digunakan untuk aplikasi web seperti WordPress , Joomla , Magento dan lainnya.

Artikel ini akan menunjukkan kepada Anda beberapa tips dasar namun bermanfaat tentang cara mengoptimalkan kinerja MySQL/MariaDB. Harap diingat bahwa artikel ini mengasumsikan bahwa Anda telah menginstal MySQL atau MariaDB. Jika Anda masih bertanya-tanya bagaimana cara menginstalnya di sistem Anda, Anda dapat mengikuti panduan lengkap kami di sini:

  1. Memasang LAMP di RHEL/CentOS 7
  2. Memasang LAMP di Fedora 22
  3. Menyiapkan LAMP di Ubuntu 15.04
  4. Menginstal MariaDB di Debian 8
  5. Instal MariaDB di Gentoo Linux
  6. Instal MariaDB di Arch Linux

Penting :Sebelum kita mulai – jangan menerima saran ini secara membabi buta. Setiap penyiapan MySQL bersifat unik dan memerlukan pemikiran tambahan, sebelum membuat perubahan apa pun.

Hal-hal yang perlu Anda ketahui:

  1. File konfigurasi MySQL/MariaDB terletak di /etc/my.cnf . Setiap kali Anda memodifikasi file ini, Anda harus memulai ulang layanan MySQL agar perubahan baru dapat diterapkan.
  2. Untuk menulis artikel ini MySQL versi 5.6 telah digunakan sebagai template.

1. Aktifkan file per tabel InnoDB

Pertama, penting untuk menjelaskan bahwa InnoDB adalah mesin penyimpanan. MySQL dan MariaDB menggunakan InnoDB sebagai mesin penyimpanan default. Di masa lalu MySQL digunakan untuk menyimpan tabel database dan indeks dalam tablespace sistem. Pendekatan ini dimaksudkan untuk server yang tujuan utamanya adalah pemrosesan basis data dan disk penyimpanannya tidak digunakan untuk tujuan lain apa pun.

InnoDB menyediakan pendekatan yang lebih fleksibel dan setiap informasi database disimpan dalam .ibd berkas data. Setiap .ibd file mewakili tablespace sendiri. Dengan cara itu operasi basis data seperti “TRUNCATE ” dapat diselesaikan lebih cepat dan Anda juga dapat memperoleh kembali ruang yang tidak terpakai saat menjatuhkan atau memotong tabel database.

Manfaat lain dari konfigurasi ini adalah kenyataan bahwa Anda dapat menyimpan beberapa tabel database di perangkat penyimpanan terpisah. Ini dapat sangat meningkatkan I/O muat di disk Anda.

innodb_file_per_table diaktifkan secara default di MySQL 5.6 dan di atasnya. Anda dapat melihatnya di /etc/my.cnf mengajukan. Arahannya terlihat seperti ini:

innodb_file_per_table=1

2. Simpan Data Database MySQL di Partisi Terpisah

Catatan :Pengaturan ini hanya berfungsi dengan MySQL, tetapi tidak dengan MariaDB.

Terkadang baca/tulis OS dapat memperlambat kinerja server MySQL Anda, terutama jika terletak di hard drive yang sama. Sebagai gantinya, saya akan merekomendasikan menggunakan hard drive terpisah (sebaiknya SSD) untuk layanan MySQL.

Untuk menyelesaikannya, Anda harus memasang drive baru ke komputer/server Anda. Untuk tujuan artikel ini, saya akan berasumsi bahwa drive akan berada di bawah /dev/sdb .

Langkah selanjutnya adalah menyiapkan drive baru:

# fdisk /dev/sdb

Sekarang tekan “n ” untuk membuat partisi baru. Selanjutnya tekan “p ” untuk menjadikan partisi baru sebagai yang utama. Setelah itu, atur nomor partisi dari 1-4 . Setelah itu Anda akan memilih ukuran partisi. Tekan enter di sini. Pada langkah berikutnya Anda perlu mengonfigurasi ukuran partisi.

Jika Anda ingin menggunakan seluruh disk tekan enter sekali lagi. Jika tidak, Anda dapat mengatur ukuran partisi baru secara manual. Saat siap tekan “w ” untuk menulis perubahan. Sekarang kita perlu membuat sistem file untuk partisi baru kita. Ini dapat dengan mudah dilakukan dengan:

# mkfs.ext4 /dev/sdb1

Sekarang kita akan me-mount partisi baru kita dalam sebuah folder. Saya telah menamai folder saya “ssd ” dan dibuat di direktori root:

# mkdir /ssd/

Kami siap untuk memasang partisi baru yang baru saja kami buat di folder baru:

# mount /dev/sdb1  /ssd/

Anda dapat melakukan mount saat startup dengan menambahkan baris berikut di /etc/fstab berkas.

/dev/sdb1 /ssd ext3 defaults 0 0

Sekarang Anda siap untuk memindahkan MySQL ke disk baru. Pertama-tama hentikan layanan MySQL dengan:

# service mysqld stop

Saya sarankan Anda menghentikan Apache/nginx juga untuk mencegah upaya apa pun untuk menulis di database:

# service httpd stop
# service nginx stop

Sekarang salin seluruh direktori MySQL di drive baru:

# cp /var/lib/mysql /ssd/ -Rp

Ini mungkin memakan waktu cukup lama tergantung pada situs database MySQL Anda. Setelah proses ini selesai, ganti nama direktori MySQL:

# mv /var/lib/mysql /var/lib/mysql-backup

Selanjutnya kita akan membuat symlink.

# ln -s /ssd/mysql /var/lib/mysql

Sekarang Anda siap untuk memulai MySQL dan layanan web Anda:

# service mysqld start
# service httpd start
# service nginx start

Pada titik ini database MySQL Anda akan diakses dari drive baru.

Halaman:1 2 3 4

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbaiki "ERROR 1250 (42000):Tabel '...' dari salah satu SELECT tidak dapat digunakan dalam klausa ORDER global" saat menggunakan UNION di MySQL

  2. Permintaan MySQL menemukan nilai dalam string yang dipisahkan koma

  3. Nonaktifkan ONLY_FULL_GROUP_BY

  4. Bagaimana cara mengubah CHARACTER SET (dan COLLATION) di seluruh database?

  5. Pivot dinamis MySQL