Rumah  >  Artikel  >  pangkalan data  >  Jadual partition penalaan prestasi MySQL (perkongsian ringkasan)

Jadual partition penalaan prestasi MySQL (perkongsian ringkasan)

WBOY
WBOYke hadapan
2022-04-30 09:00:172345semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang mysql Ia terutamanya memperkenalkan isu berkaitan tentang penalaan prestasi dan terutamanya memperkenalkan kandungan jadual partition yang berkaitan Bagi pengguna, pembahagian Jadual ialah jadual logik bebas, tetapi lapisan bawah terdiri daripada beberapa sub-jadual fizikal Mari kita lihat bersama-sama.

Jadual partition penalaan prestasi MySQL (perkongsian ringkasan)

Pembelajaran yang disyorkan: tutorial video mysql

Bagi pengguna, jadual partition ialah jadual logik bebas, tetapi lapisan bawah ialah Terdiri daripada berbilang sub-jadual fizikal. Jadual partition ialah kotak hitam yang merangkum sepenuhnya pelaksanaan asas dan telus kepada pengguna Berbilang fail jadual yang dinamakan menggunakan # untuk memisahkannya boleh dilihat daripada sistem fail.
MySQL menggunakan klausa partition by clause untuk mentakrifkan data yang disimpan dalam setiap partition apabila membuat jadual Apabila melaksanakan pertanyaan, pengoptimum akan menapis partition yang tidak mempunyai data yang kami perlukan berdasarkan definisi partition, supaya. pertanyaan tidak perlu mengimbas semua partition.
Tujuan utama pembahagian adalah untuk membahagikan secara kasar data kepada jadual yang berbeza, supaya data yang berkaitan boleh disimpan bersama.
Seterusnya, saya akan bercakap tentang jadual partition dari 6 aspek berikut, iaitu senario aplikasi jadual partition, limitation table partition, prinsip partition table, jenis-jenis jadual partition, bagaimana untuk gunakan jadual partition, dan cara menggunakan jadual partition Perkara yang perlu diberi perhatian semasa membuat jadual.

1. Senario aplikasi jadual terbahagi

1 Jadual adalah terlalu besar sehingga tidak boleh diletakkan semua dalam memori, atau hanya terdapat data panas di bahagian terakhir jadual, dan selebihnya adalah data sejarah.

2. Data jadual terbahagi lebih mudah diselenggara

(1) Untuk memadam sejumlah besar data dalam kelompok, anda boleh menggunakan kaedah mengosongkan keseluruhan partition

(2) Optimumkan partition bebas , semak, pembaikan dan operasi lain

3 Data jadual partition boleh diedarkan pada peranti fizikal yang berbeza, dengan itu menggunakan berbilang peranti perkakasan dengan cekap

4. Jadual partition boleh digunakan untuk mengelakkan tertentu Beberapa kesesakan khas

(1) Akses saling eksklusif bagi satu indeks innodb

(2) Persaingan kunci Inode sistem fail ext3

5. Boleh disandarkan dan dipulihkan secara bebas Partition

2. Had jadual partition

1. Jadual hanya boleh mempunyai maksimum 1024 partition Dalam versi 5.7, ia boleh menyokong 8196 partition

2 Dalam MySQL awal, ungkapan partition mestilah integer atau ungkapan yang mengembalikan integer Dalam MySQL 5.5, lajur boleh digunakan secara langsung untuk pembahagian dalam beberapa senario.

3 Jika terdapat kunci utama atau lajur indeks unik dalam medan partition, maka semua lajur kunci utama dan lajur indeks unik mesti disertakan.

4. Kekangan kunci asing tidak boleh digunakan dalam jadual pembahagian

3 Prinsip jadual pembahagian

Jadual pembahagian dilaksanakan oleh berbilang yang berkaitan. jadual asas ini juga dikenal pasti oleh objek pemegang, dan kami boleh mengakses setiap partition secara langsung. Enjin storan menguruskan setiap jadual asas partition dengan cara yang sama seperti ia menguruskan jadual biasa (semua jadual pendasar mesti menggunakan enjin storan yang sama Pengetahuan indeks jadual partition menambah indeks yang sama pada setiap jadual pendasar). Dari perspektif enjin storan, jadual asas tidak berbeza daripada jadual biasa, dan enjin storan tidak perlu tahu sama ada ia meja biasa atau sebahagian daripada jadual berparti. Operasi jadual partition dijalankan mengikut logik operasi berikut:

1 Pilih pertanyaan

Apabila menanyakan jadual partition, lapisan partition mula-mula dibuka dan. kunci semua Untuk jadual asas, pengoptimum terlebih dahulu menentukan sama ada sesetengah partition boleh ditapis, dan kemudian memanggil antara muka enjin storan yang sepadan untuk mengakses data setiap partition

2. operasi masukkan

apabila menulis Apabila rekod dimasukkan, lapisan partition mula-mula membuka dan mengunci semua jadual asas, kemudian menentukan partition yang menerima rekod, dan kemudian menulis rekod ke jadual pendasar yang sepadan.

3. Operasi Padam

Apabila memadamkan rekod, lapisan partition mula-mula membuka dan mengunci semua jadual asas, kemudian menentukan partition yang sepadan dengan data, dan akhirnya sepadan Padam jadual asas.

4. Operasi kemas kini

Apabila mengemas kini rekod, lapisan partition mula-mula membuka dan mengunci semua jadual asas, dan mysql terlebih dahulu menentukan partition mana rekod perlu dikemas kini . , kemudian keluarkan data dan kemas kininya, kemudian tentukan partition mana data yang dikemas kini harus berada, dan akhirnya tulis pada jadual asas dan padamkan jadual asas tempat data sumber berada.

Sesetengah operasi menyokong penapisan Sebagai contoh, apabila memadam rekod, MySQL perlu mencari rekod itu terlebih dahulu ditapis, yang juga berkesan untuk kemas kini. Jika ia adalah operasi sisipan, ia hanya akan memukul satu partition, dan partition lain akan ditapis keluar. MySQL mula-mula menentukan partition mana rekod ini dimiliki, dan kemudian menulis rekod ke jadual partition yang sepadan tanpa beroperasi pada mana-mana partition lain.

Walaupun setiap operasi akan "mula-mula membuka dan mengunci semua jadual asas", ini tidak bermakna jadual partition mengunci keseluruhan jadual semasa pemprosesan Jika enjin storan boleh melaksanakan kunci peringkat baris dengan sendirinya, seperti innodb , the kunci meja yang sepadan akan dilepaskan pada tahap partition.

Pembelajaran yang disyorkan: tutorial video mysql

Atas ialah kandungan terperinci Jadual partition penalaan prestasi MySQL (perkongsian ringkasan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam