Kinerja Server MySql Lambat - Apa dan Bagaimana cara memeriksa?

10

mulai: penafian

Saya bukan DBA MySql Server; Saya tahu sebagian besar MSSQL - itulah sebabnya saya butuh bantuan Anda.

akhir: penafian

Saya telah diminta untuk memeriksa mengapa mesin server MySql berkinerja buruk - Saya belum melihat atau memegang database yang terlibat dan ingin tahu harus mulai dari mana.

Di mana saya memulai?

Pertanyaan apa yang harus saya ajukan kepada mereka yang memiliki akses ke MySql - Saya bahkan tidak tahu apakah mereka menggunakan phpmyadmin atau alat lain.

Pada dasarnya:

  • Barang apa yang harus saya minta dan bagaimana saya akan menanggapi setiap bagian yang mereka berikan?

Apa saja item utama yang harus ditanyakan ketika masalah dalam kinerja database?

di MSSQL saya dapat memeriksa sp_who2koneksi yang ada untuk melihat apakah ada yang memblokir, apa yang menjadi mitra di mysql? * tidak harus spesifik karena dapat ada banyak jenis hasil untuk setiap item tetapi ingin membantu membuat bola bergulir karena ini mempengaruhi pengguna - tampaknya mereka mengatur mesin mysql tanpa memiliki dba on-board.

Yasker Yasker
sumber
Sudahkah Anda memeriksa masalah sumber daya yang biasa - CPU penuh, RAM penuh / tidak digunakan, IO kelebihan beban? 101 hal yang akan Anda mulai dengan server sql?
TomTom
Belum punya kesempatan untuk - Saya hanya ingin dipersiapkan begitu saya datang sehingga semuanya terus bergerak - mungkin saja orang-orang di tempat sudah memeriksa dan dengan server aplikasi dan db dengan spesifikasi tinggi (perusahaan boros) saya ingin fokus pada apa yang terjadi jika perangkat kerasnya tidak bermasalah
Yasker Yasker
Keluar dari pengalaman - mulai dari sana. Saya telah melihat "server kelas atas" dengan satu cakram keras SCSI (bahwa mereka pasti telah menarik diri dari beberapa lelang ebay) yang memiliki waktu respons beberapa detik ... Saya akan memvalidasi sisi IO. Ini juga akan membantu - terlalu banyak IO dapat menunjukkan indeks yang hilang jika jumlahnya benar-benar konyol.
TomTom

Jawaban:

9
  • Catat kueri lambat - Jika sistem Anda memiliki banyak kueri, akan semakin sulit untuk mengetahui kueri mana yang memperlambat sistem Anda. MySQL menyediakan alat untuk mencatat permintaan lambat untuk analisis lebih lanjut http://dev.mysql.com/doc/refman/5.0/id/slow-query-log.html

  • EXPLAIN Diperpanjang perintah menunjukkan detail tentang permintaan Anda ketika Anda tidak tahu apa yang terjadi http://dev.mysql.com/doc/refman/5.0/en/explain-extended.html

  • Untuk mempercepat kueri Anda gunakan Indeks - Praktik yang baik adalah menambahkan indeks dengan melihat bidang mana yang ada dalam indeks tambahkan klausa WHERE untuk mereka. Juga jika Anda mengambil semua bidang dari tabel, kueri menjadi lebih lambat dengan mengambil semua data dari disk. Dalam kueri SELECT Anda harus menentukan bidang mana yang perlu Anda bawa alih-alih membawa semuanya dengan *
  • Manfaatkan Query Cache http://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html
  • Pastikan opsi file konfigurasi server MySQL Anda dioptimalkan sesuai dengan perangkat keras Anda http://dev.mysql.com/doc/refman/5.5/id/option-files.html
  • Pastikan bahwa Anda menggunakan tipe data yang dioptimalkan saat membuat struktur tabel. Misalnya bidang "Komentar" memiliki ukuran 256 karakter, balas ke MYSQL dengan bidang dengan tipe VARCHAR (256) alih-alih menggunakan TEXT. Permintaan akan jauh lebih cepat.

Procedure_Analyse () dapat membantu Anda dalam menemukan tipe data yang optimal:

http://www.mysqlperformanceblog.com/2009/03/23/procedure-analyse/

http://dev.mysql.com/doc/refman/5.0/id/procedure-analyse.html

Mahesh Patil
sumber