Optimalkan desain logis
Level logis adalah tentang struktur kueri dan tabel itu sendiri. Coba maksimalkan ini dulu. Tujuannya adalah untuk mengakses data sesedikit mungkin pada tingkat logis.
- Memiliki kueri SQL paling efisien
- Desain skema logis yang mendukung kebutuhan aplikasi (mis. jenis kolom, dll.)
- Pertukaran desain untuk mendukung beberapa kasus penggunaan lebih baik daripada yang lain
- Hambatan relasional
- Normalisasi
Optimalkan desain fisik
Level fisik berkaitan dengan pertimbangan non-logis, seperti jenis indeks, parameter tabel, dll. Tujuannya adalah untuk mengoptimalkan IO yang selalu menjadi hambatan. Sesuaikan setiap tabel agar sesuai dengan kebutuhannya. Tabel kecil dapat dimuat secara permanen di cache DBMS, tabel dengan kecepatan tulis rendah dapat memiliki pengaturan yang berbeda dari tabel dengan kecepatan pembaruan tinggi untuk mengambil lebih sedikit ruang disk, dll. Tergantung pada kueri, indeks yang berbeda dapat digunakan, dll. Anda dapat data yang didenormalisasi secara transparan dengan tampilan yang terwujud, dll.
- Parameter tabel (ukuran alokasi, dll.)
- Indeks (gabungan, jenis, dll.)
- Parameter seluruh sistem (ukuran cache, dll.)
- Mempartisi
- Denormalisasi
Coba perbaiki dulu desain logikanya, baru desain fisiknya. (Batas antara keduanya tidak jelas, jadi kita bisa berdebat tentang kategorisasi saya).
Optimalkan pemeliharaan
Basis data harus dioperasikan dengan benar agar tetap seefisien mungkin. Ini mencakup beberapa tugas pemeliharaan yang dapat berdampak pada kinerja, mis.
- Selalu perbarui statistik
- Urutkan ulang tabel penting secara berkala
- Perawatan disk
- Semua hal sistem untuk memiliki server yang mengguncang