Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk meningkatkan prestasi MySQL dengan membahagikan jadual secara menegak

Bagaimana untuk meningkatkan prestasi MySQL dengan membahagikan jadual secara menegak

WBOY
WBOYasal
2023-05-10 21:31:341217semak imbas

Dengan perkembangan pesat Internet, skala data terus berkembang, dan permintaan untuk penyimpanan pangkalan data dan kecekapan pertanyaan juga semakin tinggi. Sebagai pangkalan data sumber terbuka yang paling biasa digunakan, pengoptimuman prestasi MySQL sentiasa menjadi tumpuan pembangun. Artikel ini akan memperkenalkan teknologi pengoptimuman prestasi MySQL yang berkesan - jadual partition menegak, dan menerangkan secara terperinci cara melaksanakan dan menggunakannya.

1. Apakah itu jadual partition menegak?

Jadual terbahagi secara menegak merujuk kepada membahagikan jadual mengikut ciri lajur dan menyimpan lajur berbeza pada peranti storan fizikal yang berbeza untuk meningkatkan kecekapan pertanyaan. Dalam jadual yang dibahagikan secara menegak, lajur dalam jadual boleh dikumpulkan secara logik dan jadual fizikal dibuat untuk setiap kumpulan lajur Setiap jadual fizikal mengandungi kumpulan lajur dan lajur lain yang perlu disoal.

Sebagai contoh, jadual pesanan boleh dibahagikan secara menegak kepada dua jadual: jadual butiran pesanan dan jadual ringkasan pesanan. Jadual butiran pesanan mengandungi maklumat terperinci tentang pesanan, seperti nama produk, kuantiti, harga, dsb. jadual ringkasan pesanan mengandungi maklumat ringkasan tentang pesanan, seperti nombor pesanan, masa pesanan, jumlah jumlah, dll. Dengan cara ini, apabila menanyakan butiran pesanan, anda hanya perlu menanyakan jadual butiran pesanan, dan apabila menanya maklumat ringkasan pesanan, anda hanya perlu menanyakan jadual ringkasan pesanan, tanpa membaca keseluruhan jadual pesanan, sekali gus meningkatkan kecekapan pertanyaan.

2. Mengapa menggunakan jadual partition menegak?

Biasanya, struktur jadual pangkalan data adalah rata dan mengandungi semua lajur. Apabila jumlah data dalam jadual adalah besar, menanyakan semua lajur akan menyebabkan overhed IO yang besar, meningkatkan masa pertanyaan dan overhed sistem. Teknologi jadual pembahagian menegak boleh membahagikan lajur jadual mengikut cirinya, dan menyimpan lajur yang kerap digunakan dan lajur yang jarang digunakan secara berasingan, dengan itu mengurangkan operasi IO. Jadual pembahagian secara menegak boleh membawa kelebihan berikut:

  1. Tingkatkan kecekapan IO: Selepas membahagikan lajur jadual mengikut cirinya, operasi IO yang tidak perlu boleh dikurangkan, dengan itu meningkatkan kecekapan dan prestasi pertanyaan.
  2. Kurangkan lebar jadual: Berbanding dengan jadual dengan struktur rata, lebar meja selepas pembahagian menegak adalah lebih kecil, dan saiz setiap baris data lebih padat, yang mengurangkan overhed storan data dalam ingatan.
  3. Kurangkan jumlah data pertanyaan: Apabila pertanyaan tidak perlu menggunakan semua lajur, hanya tanya lajur partition yang berkaitan, yang boleh mengurangkan jumlah data yang diperoleh semula dan meningkatkan kecekapan pertanyaan.
  4. Kebolehselenggaraan yang lebih baik: Jadual yang dibahagikan secara menegak boleh mengumpulkan lajur yang berkaitan dalam jadual, mengurangkan storan data berlebihan dan mengekalkan integriti data dengan lebih baik.

3. Bagaimana untuk melaksanakan jadual partition menegak?

MySQL menyediakan dua kaedah untuk melaksanakan jadual pembahagian menegak:

  1. Jadual pisah: semua lajur jadual dibahagikan kepada jadual fizikal yang berbeza, setiap jadual mengandungi lajur Kumpulan dan lajur lain yang perlu ditanya. Jadual pisah sesuai untuk jadual dengan lajur yang lebih sedikit dan kerumitan yang lebih rendah.
  2. Paparan pisah: Salin jadual yang mengandungi kumpulan lajur berkaitan ke jadual fizikal yang berbeza, cipta pandangan untuk menggabungkan jadual yang dipartisi ke dalam satu jadual, supaya semua lajur boleh disoal semasa pertanyaan. Paparan pisah sesuai untuk senario di mana pembahagian adalah kompleks dan semua lajur perlu disoal.

Pilih kaedah pembahagian yang berbeza berdasarkan senario dan keperluan tertentu.

4. Bagaimana untuk memilih medan partition?

Memilih medan partition yang sesuai adalah sangat kritikal. Pemilihan yang tidak betul akan menyebabkan kecekapan pertanyaan berkurangan. Perkara berikut perlu diberi perhatian:

  1. Keseragaman data: Untuk medan berasaskan angka, seperti jumlah pesanan, ID produk, dll., anda perlu mempertimbangkan sama ada jumlah data yang terkandung dalam setiap partition selepas pembahagian adalah sekata. Jika partition tertentu mengandungi sejumlah besar data dan partition lain mempunyai data yang sangat sedikit, semua partition perlu dibaca semasa pertanyaan dan kesan pengoptimuman akan hilang.
  2. Kekerapan akses: Ia adalah perlu untuk memilih lajur yang kerap diakses sebagai medan partition berdasarkan senario pertanyaan sebenar. Jika data agak purata, anda boleh menggunakan medan partition berbilang. Untuk medan partition berbilang, pertimbangkan gabungan data.
  3. Kekerapan kemas kini medan partition: Pertimbangkan kekerapan kemas kini medan partition dan pilih medan yang lebih stabil untuk partition.

5 Nota

  1. Perancangan jadual partition harus dilengkapkan semasa mereka bentuk pangkalan data, dan pertumbuhan data harus diambil kira untuk mengelakkan jadual daripada menjadi. masalah prestasi yang terlalu luas.
  2. Pengagihan data jadual partition hendaklah sama rata, memastikan saiz data setiap partition adalah lebih kurang sama, jika tidak prestasi pertanyaan akan terjejas dengan ketara.
  3. Ia akan menjadi lebih sukar apabila jadual partition perlu disandarkan dan dipulihkan, kerana berbilang jadual perlu disandarkan dan dipulihkan.
  4. Jadual yang dipisahkan lebih mesra untuk operasi pertanyaan, tetapi operasi seperti kemas kini dan padam mungkin tidak cekap seperti jadual biasa kerana keperluan untuk mengendalikan berbilang jadual.
  5. Medan partition bagi jadual partition tidak menyokong operasi seperti kunci asing, indeks dan fungsi SQL.

6. Ringkasan

Jadual yang dipisahkan secara menegak ialah cara yang berkesan untuk mengoptimumkan prestasi MySQL. Dengan memilih medan partition secara rasional dan memperuntukkan data kepada jadual fizikal yang berbeza, kecekapan pertanyaan MySQL boleh dipertingkatkan lagi. Walau bagaimanapun, dalam aplikasi sebenar, adalah perlu untuk memilih kaedah pembahagian dan medan pembahagian yang sesuai mengikut senario tertentu untuk mengelakkan masalah prestasi yang disebabkan oleh pembahagian yang tidak betul.

Atas ialah kandungan terperinci Bagaimana untuk meningkatkan prestasi MySQL dengan membahagikan jadual secara menegak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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