Silakan lihat posting ini:
Petunjuk untuk membuat Data Anda Sekecil Mungkin:
Rancang tabel Anda untuk meminimalkan ruang pada disk. Ini dapat menghasilkan peningkatan besar dengan mengurangi jumlah data yang ditulis dan dibaca dari disk. Tabel yang lebih kecil biasanya membutuhkan lebih sedikit memori utama saat isinya sedang diproses secara aktif selama eksekusi permintaan. Setiap pengurangan ruang untuk data tabel juga menghasilkan indeks yang lebih kecil yang dapat diproses lebih cepat.
MySQL mendukung berbagai mesin penyimpanan (tipe tabel) dan format baris. Untuk setiap tabel, Anda dapat memutuskan metode penyimpanan dan pengindeksan mana yang akan digunakan. Memilih format tabel yang tepat untuk aplikasi Anda dapat memberi Anda keuntungan kinerja yang besar.
Anda bisa mendapatkan kinerja yang lebih baik untuk tabel dan meminimalkan ruang penyimpanan dengan menggunakan teknik yang tercantum di sini: - Gunakan tipe data yang paling efisien (terkecil). MySQL memiliki banyak tipe khusus yang menghemat ruang disk dan memori. Misalnya, gunakan tipe integer yang lebih kecil jika mungkin untuk mendapatkan tabel yang lebih kecil. MEDIUMINT seringkali merupakan pilihan yang lebih baik daripada INT karena kolom MEDIUMINT menggunakan 25% lebih sedikit ruang.
Nyatakan kolom untuk TIDAK NULL jika memungkinkan. Itu membuat semuanya lebih cepat dan Anda menghemat satu bit per kolom. Jika Anda benar-benar membutuhkan NULL dalam aplikasi Anda, Anda harus menggunakannya. Hanya menghindari memilikinya di semua kolom secara default.
Untuk tabel MyISAM, jika Anda tidak memiliki kolom panjang variabel (VARCHAR, TEXT, atau BLOB), format baris ukuran tetap digunakan.
Tabel InnoDB menggunakan format penyimpanan ringkas. Dalam versi MySQL lebih awal dari 5.0.3, baris InnoDB berisi beberapa informasi yang berlebihan, seperti jumlah kolom dan panjang setiap kolom, bahkan untuk kolom ukuran tetap. Secara default, tabel dibuat dalam format ringkas (ROW_FORMAT = COMPACT). Kehadiran format baris kompak mengurangi ruang penyimpanan baris sekitar 20% dengan biaya peningkatan penggunaan CPU untuk beberapa operasi. Jika beban kerja Anda adalah tipikal yang dibatasi oleh tingkat hit cache dan kecepatan disk, itu kemungkinan akan lebih cepat. Jika ini adalah kasus yang jarang terjadi yang dibatasi oleh kecepatan CPU, mungkin lebih lambat.
Format InnoDB yang ringkas juga mengubah cara kolom CHAR yang berisi data UTF-8 disimpan. Dengan ROW_FORMAT = REDUNDANT, UTF-8 CHAR (N) menempati 3 × N byte, mengingat bahwa panjang maksimum karakter yang dikodekan UTF-8 adalah tiga byte. Banyak bahasa dapat ditulis terutama menggunakan karakter single-byte UTF-8, sehingga panjang penyimpanan yang tetap sering menghabiskan ruang. Dengan ROW_FORMAT = format COMPACT, InnoDB mengalokasikan jumlah penyimpanan variabel dalam rentang dari N hingga 3 × N byte untuk kolom ini dengan menghapus spasi tambahan jika perlu. Panjang penyimpanan minimum disimpan sebagai N byte untuk memfasilitasi pembaruan di tempat dalam kasus-kasus tertentu.
Indeks utama tabel harus sesingkat mungkin. Ini membuat identifikasi setiap baris mudah dan efisien
Buat hanya indeks yang benar-benar Anda butuhkan. Indeks baik untuk pengambilan tetapi buruk saat Anda perlu menyimpan data dengan cepat. Jika Anda mengakses tabel sebagian besar dengan mencari pada kombinasi kolom, buat indeks pada mereka. Bagian pertama dari indeks adalah kolom yang paling banyak digunakan. Jika Anda selalu menggunakan banyak kolom saat memilih dari tabel, kolom pertama dalam indeks haruslah yang memiliki duplikat terbanyak untuk mendapatkan kompresi indeks yang lebih baik.
Dalam beberapa keadaan, akan bermanfaat untuk membagi menjadi dua tabel yang dipindai sangat sering. Ini terutama benar jika itu adalah tabel format dinamis dan dimungkinkan untuk menggunakan tabel format statis yang lebih kecil yang dapat digunakan untuk menemukan baris yang relevan saat memindai tabel.