Sejauh manakah anda tahu tentang enjin MySQL BlackHole?

藏色散人
Lepaskan: 2021-09-14 17:43:30
ke hadapan
1622 orang telah melayarinya

Konsep

Seperti MyISAM dan InnoDB, BlackHole ialah satu lagi enjin MySQL Dari sudut pandangan literal,
ia berkelakuan seperti lubang hitam , anda hanya boleh masuk tetapi tidak keluar Setelah anda masuk, anda hilang. Dalam erti kata lain, sebarang data yang ditulis kepadanya akan hilang, sedikit seperti Linux /dev/null
Contohnya, enjin ujian jadual ialah BlackHole, sebarang sisipan pada jadual ini akan hilang,
padanya pilih sentiasa mengembalikan set kosong Hanya terdapat satu fail test.frm dalam direktori data yang sepadan dan tiada fail lain dikaitkan dengannya.

Senario Penggunaan

Apakah gunanya enjin yang tidak menyimpan sebarang data?
Kuncinya ialah walaupun ia tidak menyimpan data, operasi pada pangkalan data masih direkodkan dalam log binlog.
Ini membawa faedah, ia boleh digunakan sebagai perantara untuk replikasi tuan-hamba, menukar operasi penyegerakan asal daripada pangkalan data utama kepada penyegerakan daripada pangkalan data enjin BlackHole sebagai perantara.

1. Berkongsi beban perpustakaan utama sebagai perpustakaan induk pseudo

Seperti yang kita sedia maklum, apabila terdapat banyak perpustakaan hamba, semua perpustakaan hamba memuatkan data dari perpustakaan utama, yang mana akan menambah beban perpustakaan utama. Tetapi jika anda menyegerakkan daripada perpustakaan pseudo-utama BlackHole, anda boleh mengurangkan beban pada perpustakaan utama. Seni bina tuan-hamba asal lebih kurang seperti berikut:

Sejauh manakah anda tahu tentang enjin MySQL BlackHole?

现在,BlackHole伪主库作为中介,变成这样:
Salin selepas log masuk

Sejauh manakah anda tahu tentang enjin MySQL BlackHole?

Khususnya, replika boleh dikonfigurasikan dalam pseudo- perpustakaan induk- lakukan dan replikasi-abaikan peraturan menapis jadual yang tidak perlu disegerakkan.

2. Sebagai pengumpul log binlog

ia tidak menyimpan data sebenar, tetapi hanya merekodkan ciri-ciri binlog, supaya enjin boleh digunakan untuk pengumpulan log binlog untuk memudahkan analisis pangkalan data.
Pengetahuan berkaitan: Terdapat tiga format untuk log binlog: baris, pernyataan dan campuran.
baris merekodkan rekod yang diubah bagi setiap baris dengan kata lain, kemas kini akan merekodkan semua baris yang diubah suai yang memenuhi syarat Alter table adalah lebih teruk lagi, yang bersamaan dengan membina semula keseluruhan jadual dan merekodkan semua baris. Oleh itu, log dalam format ini mudah menjadi terlalu besar; kaedah
penyataan hanya merekodkan SQL yang mengubah data Tiada masalah dengan kaedah baris, tetapi ia akan merekodkan konteks maklumat pelaksanaan SQL, yang merupakan kelemahan Masalahnya ialah apabila maklumat konteks diterbitkan semula di hujung yang lain, ia adalah mudah untuk membuat kesilapan kerana maklumat yang lebih kompleks.
bercampur menggabungkan baris dan pernyataan.

Konfigurasi

Dalam pustaka pseudo, konfigurasi berikut diperlukan:
Konfigurasikan jenis lalai sebagai BlackHole, anda boleh menggunakan
default_table_type = BLACKHOLE
atau
default-storage -engine = BLACKHOLE
Buka binlog: log-bin = ms-mysql-bin
Specially configure: log-slave-update = 1. Hanya dengan cara ini, operasi dalam perpustakaan utama akan disegerakkan ke binlog BlackHole , jika tidak, hanya operasi yang menyasarkan secara langsung BlackHole akan direkodkan ke binlog.
Abaikan InnoDB: langkau-innodb Apabila pernyataan penciptaan jadual mengandungi engine=innodb, enjin BlackHole lalai akan digunakan.
Perlu diingatkan bahawa apabila seni bina ini diterima pakai, terdapat lapisan tengah tambahan untuk penyegerakan data, dan isu kelewatan perlu dipertimbangkan dengan lebih lanjut.

Pembelajaran yang disyorkan: "tutorial video mysql"

Atas ialah kandungan terperinci Sejauh manakah anda tahu tentang enjin MySQL BlackHole?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:segmentfault.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan