Menggunakan enjin Federated untuk melaksanakan storan teragih dan pertanyaan MySQL: analisis prestasi dan kebolehskalaan
1 Pengenalan
Dengan peningkatan jumlah data, prestasi dan kapasiti storan pelayan MySQL tunggal mungkin tidak dapat memenuhi keperluan. perusahaan, jadi ia perlu dipertimbangkan Gunakan seni bina teragih untuk penyimpanan dan pertanyaan. MySQL menyediakan enjin Bersekutu, yang boleh merealisasikan storan teragih MySQL dan fungsi pertanyaan. Artikel ini akan memperkenalkan cara melaksanakan storan dan pertanyaan teragih MySQL melalui enjin Federated, dan menganalisis prestasi dan kebolehskalaan.
2. Gambaran keseluruhan enjin Federated
Enjin Federated ialah jenis enjin khas yang disediakan oleh MySQL, yang boleh merealisasikan storan dan pertanyaan data yang diedarkan. Enjin Bersekutu menggunakan jadual pada pelayan jauh sebagai jadual tempatan secara telus Pengguna boleh terus mengakses data pada pelayan jauh untuk melaksanakan pertanyaan data yang diedarkan. Enjin Bersekutu digunakan dengan cara yang sama seperti jadual MySQL biasa Pengguna boleh menggunakan pernyataan SQL biasa untuk bertanya, memasukkan, mengemas kini dan memadam data.
3. Konfigurasi enjin Federated
Untuk menggunakan enjin Federated, anda perlu mendayakan enjin Federated dalam fail konfigurasi MySQL terlebih dahulu. Edit fail konfigurasi MySQL, cari kandungan berikut dan alih keluar ulasan:
[mysqld]
...
federated
Salin selepas log masuk
Mulakan semula pelayan MySQL untuk menjadikan konfigurasi itu berkesan.
4. Cipta jadual Bersekutu
Sintaks menggunakan enjin Bersekutu untuk mencipta jadual Bersekutu adalah serupa dengan sintaks mencipta jadual biasa. Berikut ialah contoh pernyataan SQL untuk mencipta jadual Bersekutu bernama federated_table
: federated_table
的Federated表:
CREATE TABLE federated_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
)
ENGINE=FEDERATED
DEFAULT CHARSET=utf8mb4
CONNECTION='mysql://username:password@remote_host:remote_port/remote_database/remote_table';
Salin selepas log masuk
Salin selepas log masuk
在上述语句中,federated_table
是Federated表的名称,id
是主键,name
是一个非空的字段。ENGINE=FEDERATED
指定了使用Federated引擎,CONNECTION
CREATE TABLE local_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4;
Salin selepas log masuk
Dalam pernyataan di atas,
federated_table
ialah nama jadual Persekutuan dan
id
ialah kunci utama dan
name
ialah medan bukan kosong.
ENGINE=FEDERATED
menentukan penggunaan enjin Federated, dan
CONNECTION
menentukan maklumat sambungan pelayan jauh, termasuk nama pengguna, kata laluan, hos jauh, port jauh, pangkalan data jauh dan meja jauh.
5. Analisis Prestasi dan Kebolehskalaan
Menggunakan enjin Federated boleh merealisasikan storan dan pertanyaan MySQL yang diedarkan, tetapi prestasi dan kebolehskalaan adalah faktor penting apabila mempertimbangkan seni bina yang diedarkan. Prestasi dan skalabiliti akan dianalisis di bawah.
Analisis Prestasi Prestasi enjin Federated dipengaruhi terutamanya oleh kependaman rangkaian dan beban pelayan. Oleh kerana enjin Bersekutu perlu mengakses data pada pelayan jauh melalui rangkaian, masa tindak balas pertanyaan mungkin meningkat jika kependaman rangkaian adalah tinggi. Selain itu, jika beban pada pelayan jauh adalah tinggi, pertanyaan kepada jadual jauh boleh menyebabkan kemerosotan prestasi.
Untuk meningkatkan prestasi, anda boleh mengambil langkah berikut:
Optimumkan sambungan rangkaian: Gunakan sambungan rangkaian berkelajuan tinggi dan laraskan parameter penghantaran rangkaian untuk mengurangkan kependaman rangkaian. Elakkan akses kerap ke jadual jauh: Anda boleh menggunakan teknologi caching untuk cache data yang kerap diakses secara setempat untuk mengurangkan bilangan akses kepada pelayan jauh. Pengoptimuman reka letak teragih: Mengikut keperluan perniagaan, data boleh diedarkan ke pelayan jauh yang berbeza mengikut peraturan tertentu, supaya pertanyaan boleh dilaksanakan secara selari pada berbilang pelayan untuk meningkatkan prestasi pertanyaan.
Analisis Kebolehskalaan Skala enjin Federated bergantung terutamanya pada keupayaan penyimpanan dan pengkomputeran pelayan jauh. Jika kapasiti storan pelayan jauh tidak mencukupi untuk menyimpan semua data, kebolehskalaan seni bina yang diedarkan akan terhad. Begitu juga, kebolehskalaan seni bina yang diedarkan akan dihadkan jika pelayan jauh mempunyai kuasa pengkomputeran yang lemah dan tidak dapat mengendalikan sejumlah besar permintaan pertanyaan.
Untuk meningkatkan kebolehskalaan, langkah-langkah berikut boleh diambil:
Peluasan mendatar: Keupayaan storan dan pengkomputeran sistem boleh dikembangkan dengan menambah lebih banyak pelayan jauh, supaya seni bina yang diedarkan boleh mengendalikan lebih banyak data dan pertanyaan permintaan. Reka bentuk partition data: Mengikut keperluan perniagaan, data dibahagikan mengikut peraturan tertentu dan diedarkan kepada pelayan jauh yang berbeza, supaya pertumbuhan data boleh diagihkan secara sama rata kepada berbilang pelayan dan mengurangkan beban pelayan tunggal.
6 Ringkasan
Artikel ini memperkenalkan kaedah menggunakan enjin Bersekutu untuk melaksanakan storan dan pertanyaan MySQL yang diedarkan, dan menganalisis prestasi dan kebolehskalaan. Melalui enjin Federated, seni bina MySQL yang diedarkan dapat direalisasikan dan keupayaan penyimpanan dan pengkomputeran sistem dapat dipertingkatkan. Walau bagaimanapun, anda perlu memberi perhatian kepada kesan kependaman rangkaian dan beban pelayan pada prestasi, dan meningkatkan prestasi dan kebolehskalaan dengan mengoptimumkan sambungan rangkaian, teknologi caching dan susun atur teragih.
Sampel kod:
- Buat jadual setempat
CREATE TABLE federated_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
)
ENGINE=FEDERATED
DEFAULT CHARSET=utf8mb4
CONNECTION='mysql://username:password@remote_host:remote_port/remote_database/remote_table';
Salin selepas log masuk
Salin selepas log masuk
- Buat jadual Bersekutu
SELECT * FROM federated_table;
Salin selepas log masuk
- Data pertanyaan
rreee-
Kemas kini data-
INSERT INTO federated_table (name) VALUES ('John Smith');
Salin selepas log masuk
Padam data
UPDATE federated_table SET name = 'Jane Doe' WHERE id = 1;
Salin selepas log masuk
🎜Di atas ialah kaedah menggunakan enjin Federated untuk melaksanakan storan dan pertanyaan teragih MySQL, serta analisis prestasi dan kebolehskalaan. Semoga ia membantu pembaca. 🎜
Atas ialah kandungan terperinci Menggunakan enjin Bersekutu untuk melaksanakan storan teragih dan pertanyaan MySQL: prestasi dan analisis kebolehskalaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!