Pengoptimuman Pangkalan Data: Menilai Pengindeksan Jadual Tunggal lwn. Berbilang Jadual Kecil tanpa Indeks
Dalam bidang pengoptimuman pangkalan data, perdebatan antara menggunakan jadual tunggal dengan indeks atau berbilang jadual kecil tanpa indeks sering timbul. Untuk memberi penerangan tentang topik ini, mari kita mendalami senario tertentu.
Senario:
Pertimbangkan jadual bernama 'statistik' dengan 20,000 pengguna dan 30 juta baris, yang menampilkan lajur untuk user_id, tindakan, cap masa, dll. Operasi pertanyaan utama melibatkan memasukkan data berdasarkan user_id dan mendapatkan semula data untuk user_id tertentu.
Soalan:
Adakah lebih cekap untuk memanfaatkan indeks pada jadual 'statistik' tunggal atau memilih jadual 'statistik' yang berasingan untuk setiap pengguna, menghapuskan keperluan untuk indeks?
Jawapan:
Menggunakan 20,000 jadual tidak disyorkan, kerana ia membawa kepada isu penyelenggaraan dan kesesakan prestasi. Sebaliknya, MySQL Partitioning menyediakan penyelesaian untuk mengoptimumkan prestasi tanpa mengorbankan integriti data.
MySQL Partitioning:
<code class="sql">CREATE TABLE statistics ( id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, PRIMARY KEY (id, user_id) ) PARTITION BY HASH(user_id) PARTITIONS 101;</code>
Faedah Pembahagian:Indeks Lebih Kecil:
Setiap partition mempunyai indeksnya sendiri, menghasilkan indeks yang lebih kecil dan lebih mudah diurus.Saiz Partition:
Tentukan saiz partition yang munasabah berdasarkan volum data yang diunjurkan dan keperluan prestasi.Atas ialah kandungan terperinci Indeks Jadual Tunggal lwn. Berbilang Jadual Kecil: Adakah Pembahagian Penyelesaian Optimum untuk Set Data Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!