Rumah pangkalan data tutorial mysql Bagaimana untuk mengoptimumkan prestasi MySQL? Perkongsian Petua Pengoptimuman

Bagaimana untuk mengoptimumkan prestasi MySQL? Perkongsian Petua Pengoptimuman

Sep 22, 2022 pm 01:49 PM
mysql

Bagaimana untuk mengoptimumkan prestasi MySQL? Perkongsian Petua Pengoptimuman

Apabila bercakap tentang pengoptimuman prestasi pangkalan data, perkara yang paling penting ialah memilih yang betul. Anda harus memutuskan sama ada aplikasi anda memerlukan pangkalan data hubungan atau bukan hubungan. Walaupun dalam satu genre, anda akan mempunyai berbilang pilihan untuk dipilih. Serta pangkalan data hubungan, anda mungkin menemui Oracle, MySQL, SQL Server dan PostgreSQL. Sebaliknya, pangkalan data bukan perhubungan memperkenalkan MongoDB, Cassandra dan CouchDB.

Anda mungkin mahu saya mencadangkan menggunakan pangkalan data bukan perhubungan untuk prestasi baca/tulis yang lebih pantas. Walau bagaimanapun, dengan beberapa penambahbaikan dan tweak, anda boleh menolak pangkalan data hubungan melebihi had yang diketahui. Jadi, dalam artikel ini, saya akan memperkenalkan anda beberapa petua untuk menjadikan pangkalan data MySQL anda lebih pantas.

Jika anda secara khusus tertanya-tanya mengapa anda perlu menggunakan MySQL, jawapannya mudah kerana ia percuma, sumber terbuka dan sangat popular dalam komuniti PHP, sedangkan Oracle tidak digunakan secara meluas kerana harganya yang tinggi. Pilihan lain kurang popular daripada MySQL.

- Konfigurasi Pelayan MySQL:

Nah, mula-mula anda harus tahu di mana fail konfigurasi terletak, bergantung pada sistem pengendalian anda. Pada sistem Linux, ia terletak di "/etc/mysql/my.cnf".
Kini tiba masanya untuk memilih enjin anda InnoDB dan MyISAM. Untuk membuat pilihan lebih mudah, anda harus tahu bahawa InnoDB menjadi enjin lalai dalam MySQL 5.5 kerana ia menyokong "penguncian peringkat baris, kunci asing dan transaksi", manakala MyISAM tidak menyokong mana-mana ciri yang disebutkan, yang menjadikannya jarang berguna dalam program aplikasi moden.
Selepas memilih enjin yang betul, tiba masanya untuk menetapkan beberapa pembolehubah konfigurasi dalam fail my.cnf.

pembolehubah max_connection:

pembolehubah max_connection mewakili bilangan sambungan yang dibenarkan oleh aplikasi. Nilai lalai ialah 151 sambungan, bagaimanapun, jika anda mendapat mesej ralat "Ralat MySQL, terlalu banyak sambungan..." anda boleh meningkatkan nombor ini dengan mudah

最大连接数 = 170
Salin selepas log masuk

innodb_buffer_pool_size variable:

Untuk mempercepatkan, MySQL akan cache data dalam memori pelayan anda ini memberitahu MySQL berapa banyak GigaBytes yang boleh digunakan. Pembolehubah ini berguna jika anda menyimpan gumpalan besar dalam pangkalan data. Anda boleh menetapkan ini kepada 80–90% daripada memori pelayan. Jadi jika pelayan anda mempunyai memori 16GB, anda boleh menetapkannya kepada 14GB.

innodb_buffer_pool_size = 14GB
Salin selepas log masuk

innodb_io_capacity variable:

Pembolehubah ini memberitahu MySQL berapa banyak operasi input/output yang boleh digunakan dan ia bergantung pada cakera anda. Contohnya, pemacu 7200 RPM tunggal dihadkan kepada 200 I/O, manakala cakera SSD perusahaan dihadkan kepada 50,000 I/O. Anda boleh mencari nilai input/output dengan mudah melalui baris arahan pada sistem pengendalian anda dan tetapkan pembolehubah kepada 90% daripada I/O yang tersedia supaya MySQL tidak pernah menggunakan terlalu banyak operasi I/O.

innodb_io_capacity = 21000
Salin selepas log masuk

pembolehubah query_cache_limit dan query_cache_size:

MySQL juga menyokong cache data dalam memori, tetapi kami tidak boleh bergantung padanya sebagai sistem caching kerana setiap kali anda program Apabila menulis data ke jadual pangkalan data, MySQL akan membina semula keseluruhan cache pertanyaan jadual. Jadi jika program anda mempunyai beban yang tinggi, cache MySQL akan menjadi sia-sia sepenuhnya Dalam kes ini, adalah lebih baik untuk menetapkan kedua-dua pembolehubah kepada 0 untuk menyimpan overhed cache MySQL Sebaliknya, anda boleh menggunakan sesuatu seperti Redis untuk menguruskan cache.

query_cache_limit = 0

query_cache_size = 0
Salin selepas log masuk

Log Pertanyaan Perlahan:

Log Pertanyaan Perlahan akan menunjukkan kepada anda pertanyaan anda yang melebihi ambang yang anda tetapkan, menghapuskan keperluan untuk meneka pertanyaan yang manakah lebih perlahan.
Pertama, anda mesti mendayakan slow_query_log dalam fail konfigurasi anda. Dalam pelayan Linux, buka "/etc/mysql/my.cnf" atau fail yang setara pada sistem anda.
dan tambah:

slow_query_log = 1

long_query_time = 1
Salin selepas log masuk

Kemudian kedua-dua pilihan ini akan mendayakan pengelogan pertanyaan perlahan dan log sebarang pertanyaan yang mengambil masa lebih daripada satu saat. Jika anda lebih suka melihat log dalam jadual dan bukannya fail, anda boleh menambah:

log_output = 'TABLE'
Salin selepas log masuk

Kemudian anda boleh mencari log anda dalam jadual "slow_log". Di sana anda boleh melihat maklumat tentang semua pertanyaan perlahan yang dilakukan selama lebih daripada satu saat. Maklumat ini termasuk masa pelaksanaan yang tepat dan bilangan baris yang dipengaruhi oleh pertanyaan, serta pengguna yang melaksanakannya.

Pengoptimuman Pertanyaan

Selepas anda mendapat semua pertanyaan yang perlahan, anda memerlukan cara untuk mengoptimumkannya untuk menjadikannya lebih pantas. Oleh itu, anda boleh menambah kata kunci "terangkan" di hadapan pernyataan pertanyaan untuk mendapatkan maklumat terperinci tentang pertanyaan yang berkaitan, contohnya: explain select * from users where active=1;

Kata kunci "terangkan" boleh membantu anda menentukan indeks pertanyaan hits dan apa Bilangan baris yang ditanya untuk mendapatkan data. Maklumat ini boleh memberitahu anda sama ada anda perlu mencipta lebih banyak indeks atau menyusun semula jadual pangkalan data.

Nyahnormalisasi dan kekangan:

Denormalisasi ialah proses meningkatkan prestasi bacaan dengan menambahkan data berlebihan atau mengumpulkannya. Contohnya, jika anda mempunyai jadual "Produk" dan jadual "Kategori", dan setiap kali anda menanyakan jadual "Produk", anda juga perlu mendapatkan "Nama Kategori" bagi setiap produk. Dalam kes ini, anda boleh menggunakan "sertai" untuk mendapatkan semula "category_name". Walau bagaimanapun, ini bermakna setiap kali pengguna membuka halaman produk, pertanyaan gabungan yang kompleks dilaksanakan. Oleh itu, anda boleh mempertimbangkan untuk menambah "Nama Kategori" pada jadual "Produk". Walaupun terdapat data yang berlebihan, peningkatan dalam prestasi bacaan adalah berbaloi.

Pendekatan penyahnormalan mungkin menyebabkan Nama Kategori dalam jadual Produk menjadi lapuk. Oleh itu, anda perlu menentukan kekangan "kunci asing", tetapi anda perlu sedar bahawa "kunci asing" akan menjadikan prestasi tulis lebih perlahan kerana MySQL perlu menyemak kekangan sebelum menulis data. Oleh itu, sentiasa menjadi tugas anda untuk membuat pilihan yang terbaik.

Alamat asal bahasa Inggeris: https://codeburst.io/database-performance-optimization-8d8407808b5b

Alamat terjemahan: https://learnku.com/mysql/t/71571

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan prestasi MySQL? Perkongsian Petua Pengoptimuman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MySQL: Kemudahan Pengurusan Data untuk Pemula MySQL: Kemudahan Pengurusan Data untuk Pemula Apr 09, 2025 am 12:07 AM

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Cara membuka phpmyadmin Cara membuka phpmyadmin Apr 10, 2025 pm 10:51 PM

Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

Mysql: Konsep mudah untuk pembelajaran mudah Mysql: Konsep mudah untuk pembelajaran mudah Apr 10, 2025 am 09:29 AM

MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

MySQL dan SQL: Kemahiran Penting untuk Pemaju MySQL dan SQL: Kemahiran Penting untuk Pemaju Apr 10, 2025 am 09:30 AM

MySQL dan SQL adalah kemahiran penting untuk pemaju. 1.MYSQL adalah sistem pengurusan pangkalan data sumber terbuka, dan SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data. 2.MYSQL menyokong pelbagai enjin penyimpanan melalui penyimpanan data yang cekap dan fungsi pengambilan semula, dan SQL melengkapkan operasi data yang kompleks melalui pernyataan mudah. 3. Contoh penggunaan termasuk pertanyaan asas dan pertanyaan lanjutan, seperti penapisan dan penyortiran mengikut keadaan. 4. Kesilapan umum termasuk kesilapan sintaks dan isu -isu prestasi, yang boleh dioptimumkan dengan memeriksa penyataan SQL dan menggunakan perintah menjelaskan. 5. Teknik pengoptimuman prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi menyertai dan meningkatkan kebolehbacaan kod.

Cara Membuat Premium Navicat Cara Membuat Premium Navicat Apr 09, 2025 am 07:09 AM

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

Cara Membuat Sambungan Baru ke MySQL di Navicat Cara Membuat Sambungan Baru ke MySQL di Navicat Apr 09, 2025 am 07:21 AM

Anda boleh membuat sambungan MySQL baru di Navicat dengan mengikuti langkah -langkah: Buka aplikasi dan pilih Sambungan Baru (Ctrl N). Pilih "MySQL" sebagai jenis sambungan. Masukkan nama host/alamat IP, port, nama pengguna, dan kata laluan. (Pilihan) Konfigurasikan pilihan lanjutan. Simpan sambungan dan masukkan nama sambungan.

Cara Melaksanakan SQL di Navicat Cara Melaksanakan SQL di Navicat Apr 08, 2025 pm 11:42 PM

Langkah -langkah untuk melaksanakan SQL di Navicat: Sambungkan ke pangkalan data. Buat tetingkap editor SQL. Tulis pertanyaan SQL atau skrip. Klik butang Run untuk melaksanakan pertanyaan atau skrip. Lihat hasilnya (jika pertanyaan dilaksanakan).

Navicat menyambung ke kod ralat dan penyelesaian pangkalan data Navicat menyambung ke kod ralat dan penyelesaian pangkalan data Apr 08, 2025 pm 11:06 PM

Kesilapan dan penyelesaian yang biasa apabila menyambung ke pangkalan data: Nama pengguna atau kata laluan (ralat 1045) Sambungan blok firewall (ralat 2003) Timeout sambungan (ralat 10060)

See all articles