Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk meningkatkan prestasi MySQL dengan menggunakan jadual partitioned

Bagaimana untuk meningkatkan prestasi MySQL dengan menggunakan jadual partitioned

WBOY
WBOYasal
2023-05-10 23:10:441393semak imbas

MySQL ialah salah satu sistem pengurusan pangkalan data hubungan yang paling popular, tetapi ia mungkin menghadapi masalah prestasi apabila memproses sejumlah besar data. Menggunakan jadual pembahagian ialah cara untuk meningkatkan prestasi MySQL Artikel ini akan memperkenalkan cara menggunakan jadual pembahagian untuk meningkatkan prestasi MySQL.

Apakah itu jadual partition?

Ringkasnya, jadual partition membahagikan jadual besar kepada berbilang jadual kecil untuk mengoptimumkan pertanyaan. Setiap jadual kecil sepadan dengan partition, dan data boleh diedarkan dalam partition berbeza berdasarkan kekunci partition. Kunci partition ialah satu atau lebih lajur data yang boleh digunakan untuk meletakkan data dalam partition yang betul mengikut peraturan partitioning.

Mengapa menggunakan jadual partition?

Masalah prestasi MySQL biasanya disebabkan oleh pertanyaan, kemas kini atau memadam operasi sejumlah besar data. Jadual terbahagi membahagikan jadual besar kepada jadual kecil, meningkatkan kecekapan pertanyaan dan pengendalian data. Jadual pembahagian juga mempercepatkan sandaran dan pemulihan data kerana membuat sandaran dan memulihkan data hanya melibatkan satu partition dan bukannya keseluruhan jadual besar.

Bagaimana untuk menggunakan jadual partition?

Menggunakan jadual pembahagian memerlukan langkah berikut:

1 Cipta jadual pembahagian

Buat jadual pembahagian dan tentukan peraturan pembahagian. MySQL menyokong julat, senarai, cincang dan skema pembahagian berasaskan gabungan. Apabila memilih skema pembahagian, pertimbangkan cara data anda akan disoal. Mereka bentuk kunci partition dan jenis partition berdasarkan predikat pertanyaan ringkas yang digunakan oleh pertanyaan boleh mengelakkan pembahagian yang tidak perlu dan meningkatkan prestasi. Berikut ialah contoh jadual pembahagian berasaskan julat:

BUAT pesanan JADUAL (
order_id INT NOT NULL AUTO_INCREMENT,
nama_pelanggan VARCHAR(50) NOT NULL,
order_date TARIKH BUKAN NULL ,
pesanan_jumlah PERPULUHAN(10, 2) BUKAN NULL,
KUNCI UTAMA (id_pesanan, tarikh_pesanan)
)
PEMBAHAGIAN MENGIKUT Julat (TAHUN(tarikh_pesanan))
(
PARTITION p KURANG DARIPADA (2015),
PARTITION p1 NILAI KURANG DARIPADA (2016),
PARTITION p2 NILAI KURANG DARIPADA (2017)
);

Jadual ini membahagikan data ke dalam kategori berbeza berdasarkan tahun lajur tarikh_pesanan dalam partition.

2. Masukkan data

Apabila memasukkan data ke dalam jadual partition, MySQL akan secara automatik menetapkan setiap rekod ke partition yang betul.

MASUKKAN KE DALAM pesanan (nama_pelanggan, tarikh_pesanan, jumlah_pesanan)
NILAI ('John Smith', '2015-01-01', 100.00),

     ('Jane Doe', '2016-01-01', 200.00),
     ('Bob Johnson', '2017-01-01', 300.00);

Data di atas akan berdasarkan pada lajur_tarikh pesanan tahun ditetapkan secara automatik kepada sekatan yang betul.

3. Data pertanyaan

Apabila menanyakan jadual pembahagian, MySQL hanya akan mendapatkan semula partition yang diperlukan berdasarkan syarat pertanyaan. Berikut ialah contoh pertanyaan pesanan dengan order_date pada 2016:

PILIH * DARI pesanan WHERE order_date = '2016-01-01';

Pertanyaan ini hanya mendapatkan semula partition p1 dan mengembalikan syarat yang dipenuhi rekod.

4. Optimumkan pertanyaan

Apabila menggunakan jadual terbahagi, anda boleh meningkatkan lagi prestasi dengan mengoptimumkan pertanyaan. Berikut ialah beberapa petua pengoptimuman:

  • Gunakan kekunci partition dalam pertanyaan.

Pertanyaan ini akan mengambil kesempatan daripada sekatan pembahagian pada kunci pembahagian jadual pembahagian. Contohnya:

PILIH * DARI pesanan WHERE YEAR(order_date) = 2016;

  • Gunakan arahan EXPLAIN

Arahan ini boleh menganalisis pernyataan pertanyaan pengoptimum Pelan pelaksanaan membantu anda mengoptimumkan pertanyaan. Contohnya:

JELASKAN PILIHAN * DARI pesanan DI MANA tarikh_perintah ANTARA '2015-01-01' DAN '2016-01-01';

Arahan ini akan mengembalikan perihalan pelan pelaksanaan pertanyaan .

  • Tentukan bilangan partition

Bilangan partition harus ditentukan berdasarkan data jadual dan pertanyaan. Terlalu banyak partition boleh menyebabkan overhed tambahan dan kerumitan pengurusan, manakala terlalu sedikit partition mungkin tidak memanfaatkan sepenuhnya faedah prestasi jadual partition. Bilangan optimum partition mungkin perlu ditentukan secara eksperimen.

Kesimpulan

Jadual yang dipisahkan ialah cara terbaik untuk meningkatkan prestasi MySQL, terutamanya apabila berurusan dengan jumlah data yang besar. Walau bagaimanapun, menggunakan jadual pembahagian memerlukan reka bentuk kunci pembahagian yang betul dan peraturan pembahagian untuk memaksimumkan faedah prestasi. Walaupun menggunakan jadual pembahagian memerlukan beberapa kerja pengurusan tambahan, peningkatan prestasi dan kerumitan pengurusan adalah berbaloi dengan usaha.

Atas ialah kandungan terperinci Bagaimana untuk meningkatkan prestasi MySQL dengan menggunakan jadual partitioned. 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