Penalaan Konfigurasi MySQL ialah komponen penting dalam pengurusan pangkalan data yang dilaksanakan oleh profesional dan pentadbir pangkalan data. Ia bertujuan untuk mengkonfigurasi pangkalan data agar sesuai dengan perkakasan dan beban kerjanya. Tetapi di luar bidang pengurusan pangkalan data, kegunaan penalaan Konfigurasi MySQL sebahagian besarnya diabaikan.
Kami membuat hipotesis bahawa penalaan MySQL boleh menjejaskan prestasi apl web dengan ketara. Jika kami dapat mempamerkan nilai penalaan MySQL, kami percaya bahawa perusahaan dan organisasi mungkin berminat untuk menerapkan amalan ini pada skala yang lebih besar.
Meningkatkan prestasi aplikasi dengan penalaan paling baik dicapai dengan pendekatan komprehensif yang menangani bidang berikut:
Ramai pembangun berpengalaman tidak melihat penalaan prestasi pangkalan data sebagai peluang untuk meningkatkan prestasi apl mereka kerana mereka tahu sedikit tentang domain ini. Mereka menghabiskan banyak masa untuk mengoptimumkan pangkalan kod, tetapi ia mencapai tahap di mana ia tidak lagi membawa hasil yang berharga untuk masa dan tenaga yang dilaburkan. Penyelidikan kami tentang cara penalaan MySQL memberi kesan positif kepada prestasi aplikasi web sumber terbuka yang popular bertujuan untuk mempamerkan fakta ini kepada pembangun.
Prosedur ujian kami untuk Laravel Aimeos membolehkan kami membandingkan prestasi apl sebelum dan selepas konfigurasi menggunakan data berbiji. Dengan menjalankan ujian dengan konfigurasi lalai terlebih dahulu, kami memperoleh hasil kawalan yang berharga untuk membandingkan konfigurasi yang ditala.
Kami menggunakan proses berikut untuk menyediakan dan menguji setiap permohonan:
Kami menerbitkan ujian JMeter, Status MySQL dan Pembolehubah MySQL semasa ujian di Github.
Metrik yang kami lihat semasa penyelidikan ini ialah:
Kami mengumpulkan metrik Penggunaan CPU dan Pertanyaan sesaat untuk membandingkan beban kerja.
Aimeos Laravel ialah rangka kerja apl web e-dagang yang popular untuk mencipta kedai dalam talian, pasaran dan apl B2B. Dengan Aimeos, pengguna boleh mencipta kedai eCommerce yang mengutamakan API untuk Laravel yang boleh berskala untuk menyokong lebih 1 bilion item. Ia tersedia dalam lebih 30 bahasa dan mempunyai lebih 300,000 pemasangan.
Untuk menguji Aimeos, kami memulakan ujian dengan sepuluh pengguna, tetapi kami terpaksa mengurangkan bilangan pengguna kerana kami tidak dapat menyelesaikan ujian dengan konfigurasi lalai.
Kami menyemai pangkalan data dengan data 500 Mb.
Tempoh ujian kami ialah 10 minit.
Kami menggunakan:
Konfigurasi yang digunakan untuk Aimeos Laravel adalah seperti berikut:
query_cache_type=1 query_cache_size=134217728 query_cache_limit=16777216 query_cache_min_res_unit=4096 thread_cache_size=0 key_buffer_size=8388608 max_allowed_packet=1073741824 sort_buffer_size=2097152 read_rnd_buffer_size=262144 bulk_insert_buffer_size=8388608 myisam_sort_buffer_size=8388608 innodb_buffer_pool_chunk_size=134217728 innodb_buffer_pool_size=805306368 max_heap_table_size=16777216 tmp_table_size=16777216 join_buffer_size=8388608 max_connections=151 table_open_cache=2048 table_definition_cache=1408 innodb_flush_log_at_trx_commit=1 innodb_log_file_size=201326592 innodb_log_buffer_size=16777216 innodb_write_io_threads=4 innodb_read_io_threads=4 innodb_file_per_table=1 innodb_flush_method=O_DIRECT innodb_thread_concurrency=0 innodb_purge_threads=4 optimizer_search_depth=0 thread_handling=pool-of-threads thread_pool_size=2
Hasil ujian Aimeos Laravel mempamerkan peningkatan prestasi dramatik antara konfigurasi lalai dan ditala.
Pengoptimuman MySQL menghasilkan peningkatan ketara dalam pelayan purata Masa Tindak Balas, yang dikurangkan daripada 1.4 saat kepada di bawah 800 milisaat.
Masa Tindak Balas ( Latensi ) jatuh sebanyak 42% dan purata penggunaan CPU sebanyak 86%, manakala Pertanyaan sesaat meningkat sebanyak 291% yang luar biasa, daripada 12 hingga 35 pertanyaan sesaat.
Graf keputusan tersedia di bawah:
Masa Respons (ms), Konfigurasi MySQL Ditala Aimeos lwn Lalai
Penggunaan CPU (%), Konfigurasi MySQL Ditala Aimeos lwn Lalai
Pertanyaan Sesaat, Aimeos Ditala Konfigurasi MySQL lwn Lalai
Kami bekerjasama dengan pembangun Laravel Gevorg Mkrtchyan dan Sergey Sinitsa daripada syarikat Initlab untuk menyiasat barisan soalan ini dan sangat berterima kasih atas kepakaran mereka.
Sergey menggunakan Aimeos dan Gevorg menyediakan kod untuk pembenihan pangkalan data.
Prosedur ujian kami, menggunakan Aimeos Laravel, menunjukkan peningkatan dramatik dalam Masa Tindak Balas (Latensi), Penggunaan CPU dan Pertanyaan sesaat selepas mengkonfigurasi pangkalan data konfigurasi pelayan.
Masa Respons (Latensi) menurun antara 42%, manakala Penggunaan CPU jatuh 86%. Pertanyaan sesaat meningkat dalam Aimeos Laravel 500MB sebanyak 291%.
Kesimpulannya, penalaan MySQL adalah aspek penting dalam pengurusan pangkalan data yang boleh memberi impak ketara ke atas prestasi aplikasi Laravel. Aplikasi web yang berprestasi buruk boleh membawa kepada peningkatan masa muat halaman, pengendalian permintaan yang perlahan dan pengalaman pengguna yang lemah, yang boleh menjejaskan SEO dan jualan secara negatif. Dengan mengoptimumkan prestasi apl web dengan penalaan MySQL, perusahaan dan organisasi boleh meningkatkan jualan, paparan halaman, kadar penukaran dan kedudukan SEO.
Dengan penyelidikan ini, kami berharap dapat mempamerkan nilai penalaan MySQL sebagai cara untuk meningkatkan prestasi aplikasi Laravel dan menggalakkan pembangun Laravel untuk mempertimbangkan amalan ini apabila mengoptimumkan prestasi apl mereka.
Menggunakan alatan seperti Releem, pangkalan data boleh dikonfigurasikan secara automatik untuk prestasi optimum, mengurangkan beban pasukan pembangunan perisian.
Atas ialah kandungan terperinci Bagaimana Penalaan MySQL Meningkatkan Prestasi Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!