Rumah pangkalan data tutorial mysql Mysql存储写入速度快慢是怎么形成的?

Mysql存储写入速度快慢是怎么形成的?

Jul 26, 2017 pm 06:10 PM
mysql menganalisis lambat

一、存储结构分析

MySQL存储结构图:



解析:

1、读操作:内存读-->cache缓存读-->磁盘物理读

读取到的数据会按上述顺序往回送。

2、写操作:内存数据直接写入cache缓存(非常快)-->写入disk

由上可知,MySQL之所以读写速度快,cache在其中起到了关键作用。

1、Cache缓存特点:

1、速度快

2、掉电数据丢失

3、容量有限

2、保护数据安全(防止意外掉电的数据丢失)应对措施:

在存储中,增加BBU(电池备份单元,就是电池),在掉电后,可以把缓存中的数据写到磁盘中,保证数据不会丢失。

如果没有提供BBU或者BBU坏了,内存数据就不会写入cache缓存中,就会直接写入disk中;相较于写入内存,写入磁盘的速度就大打折扣(万倍之差)。与此同时,因为慢下来的“写”占了绝大部分“读”的带宽。所以BBU问题是读写性能差的一很大的影响因素。

3、cache缓存容量有限

(4G、8G、16G、32G),系统为了保持cache有用,会周期性的将cache缓存的数据写入磁盘中,避免cache被占满。

二、存储写入速度慢分析

数据库-->写入速度慢-->系统hang住
Q:如何判断写入速度慢?

A:

1、怀疑BBU问题

监控BBU的bug,解决:重启BBU

2、cache被占满(类同于BBU坏了的情况)

1、海量的写入数据占满cache缓存,判断:

shell> iostat -x

mysql> show global status like 'handler_write';

2、cache写入disk的速度慢了(排水速度远小于注水速度)

硬盘I/O异常,负载过高:数据库海量的物理读(异常SQL),判断:

mysql> show status like 'Innodb_buffer_pool_reads';

3、存储性能差问题

1、存储设备差,更新设备

2、灾备同步风险,“再好的工程师,敌不过蓝翔的挖掘机、农民工的锄头……”

三、关于BBU

英文简称:BBU

英文全称:Battery Backup Unit

中文全称:电池备份单元,是电池

1、作用:

在掉电后,把缓存中的数据写到硬盘中,保证数据不会丢失;

是为了意外掉电刷脏数据的一种保护措施;

能够在系统外部供电失效的情况下,提供后备电源支持,以保证存储阵列中业务数据的安全性。

2、许多存储设备都会配备BBU

BBU在电源供应出现问题的时候,为RAID控制器缓存提供电源。当电源断电时,BBU电力可以使控制器内缓存中的数据可以保存一定时间(根据BBU的型号而决定)。用户只需要在BBU电力耗尽(电池有限)之前恢复正常供电,缓存中的数据即可被完整的写回RAID中,避免断电导致数据丢失。

和服务器电池有点不一样,服务器中,在配置RAID卡的时候可以配一个电池,在系统掉电后,能维持内存中的数据不丢失,但时间有限,大约12个小时左右,假如是12小时,如果在12内没有恢复,内存中的数据就会丢失;

3、超级电容

服务器还有一种保护方式,叫超级电容,也是和RAID卡配套的,他能在服务器掉电后把缓存中的数据写入到电容中,而且会永久保存,类似写入硬盘,实际上是写入电容,你就理解成写入U盘把。他比电池好,即使服务器在12个小时后没有恢复电源,也不会造成数据丢失。

Atas ialah kandungan terperinci Mysql存储写入速度快慢是怎么形成的?. 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)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
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)

Kemahiran pemprosesan struktur data besar PHP Kemahiran pemprosesan struktur data besar PHP May 08, 2024 am 10:24 AM

Kemahiran pemprosesan struktur data besar: Pecahan: Pecahkan set data dan proseskannya dalam bahagian untuk mengurangkan penggunaan memori. Penjana: Hasilkan item data satu demi satu tanpa memuatkan keseluruhan set data, sesuai untuk set data tanpa had. Penstriman: Baca fail atau hasil pertanyaan baris demi baris, sesuai untuk fail besar atau data jauh. Storan luaran: Untuk set data yang sangat besar, simpan data dalam pangkalan data atau NoSQL.

Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP? Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP? Jun 03, 2024 pm 08:11 PM

Prestasi pertanyaan MySQL boleh dioptimumkan dengan membina indeks yang mengurangkan masa carian daripada kerumitan linear kepada kerumitan logaritma. Gunakan PreparedStatements untuk menghalang suntikan SQL dan meningkatkan prestasi pertanyaan. Hadkan hasil pertanyaan dan kurangkan jumlah data yang diproses oleh pelayan. Optimumkan pertanyaan penyertaan, termasuk menggunakan jenis gabungan yang sesuai, membuat indeks dan mempertimbangkan untuk menggunakan subkueri. Menganalisis pertanyaan untuk mengenal pasti kesesakan; gunakan caching untuk mengurangkan beban pangkalan data;

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Jun 03, 2024 pm 12:19 PM

Membuat sandaran dan memulihkan pangkalan data MySQL dalam PHP boleh dicapai dengan mengikuti langkah berikut: Sandarkan pangkalan data: Gunakan arahan mysqldump untuk membuang pangkalan data ke dalam fail SQL. Pulihkan pangkalan data: Gunakan arahan mysql untuk memulihkan pangkalan data daripada fail SQL.

Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP? Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP? Jun 02, 2024 pm 02:26 PM

Bagaimana untuk memasukkan data ke dalam jadual MySQL? Sambung ke pangkalan data: Gunakan mysqli untuk mewujudkan sambungan ke pangkalan data. Sediakan pertanyaan SQL: Tulis pernyataan INSERT untuk menentukan lajur dan nilai yang akan dimasukkan. Laksanakan pertanyaan: Gunakan kaedah query() untuk melaksanakan pertanyaan sisipan Jika berjaya, mesej pengesahan akan dikeluarkan.

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Dec 09, 2024 am 11:42 AM

Salah satu perubahan utama yang diperkenalkan dalam MySQL 8.4 (keluaran LTS terkini pada 2024) ialah pemalam "Kata Laluan Asli MySQL" tidak lagi didayakan secara lalai. Selanjutnya, MySQL 9.0 mengalih keluar pemalam ini sepenuhnya. Perubahan ini mempengaruhi PHP dan apl lain

Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP? Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP? Jun 02, 2024 pm 02:13 PM

Untuk menggunakan prosedur tersimpan MySQL dalam PHP: Gunakan PDO atau sambungan MySQLi untuk menyambung ke pangkalan data MySQL. Sediakan penyata untuk memanggil prosedur tersimpan. Laksanakan prosedur tersimpan. Proses set keputusan (jika prosedur tersimpan mengembalikan hasil). Tutup sambungan pangkalan data.

Bagaimana untuk membuat jadual MySQL menggunakan PHP? Bagaimana untuk membuat jadual MySQL menggunakan PHP? Jun 04, 2024 pm 01:57 PM

Mencipta jadual MySQL menggunakan PHP memerlukan langkah berikut: Sambung ke pangkalan data. Buat pangkalan data jika ia tidak wujud. Pilih pangkalan data. Buat jadual. Laksanakan pertanyaan. Tutup sambungan.

Perbezaan antara pangkalan data oracle dan mysql Perbezaan antara pangkalan data oracle dan mysql May 10, 2024 am 01:54 AM

Pangkalan data Oracle dan MySQL adalah kedua-dua pangkalan data berdasarkan model hubungan, tetapi Oracle lebih unggul dari segi keserasian, skalabiliti, jenis data dan keselamatan manakala MySQL memfokuskan pada kelajuan dan fleksibiliti dan lebih sesuai untuk set data bersaiz kecil. ① Oracle menyediakan pelbagai jenis data, ② menyediakan ciri keselamatan lanjutan, ③ sesuai untuk aplikasi peringkat perusahaan ① MySQL menyokong jenis data NoSQL, ② mempunyai langkah keselamatan yang lebih sedikit, dan ③ sesuai untuk aplikasi bersaiz kecil hingga sederhana.

See all articles