Rumah > pangkalan data > tutorial mysql > Menggunakan enjin Bersekutu untuk melaksanakan storan teragih dan pertanyaan MySQL: prestasi dan analisis kebolehskalaan

Menggunakan enjin Bersekutu untuk melaksanakan storan teragih dan pertanyaan MySQL: prestasi dan analisis kebolehskalaan

王林
Lepaskan: 2023-07-26 16:36:33
asal
1236 orang telah melayarinya

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.

  1. Analisis Prestasi
  2. 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.

  1. Analisis Kebolehskalaan
  2. 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:
  1. Buat jadual setempat
  2. 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
  3. Buat jadual Bersekutu
  4. SELECT * FROM federated_table;
    Salin selepas log masuk
  5. Data pertanyaan
  6. rreee
  7. Kemas kini data
  8. INSERT INTO federated_table (name) VALUES ('John Smith');
    Salin selepas log masuk

  9. 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!

sumber:php.cn
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