Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Seberapa besar terlalu besar untuk tabel MySQL?

Tidak ada solusi umum yang bagus untuk pertanyaan "Seberapa besar itu terlalu besar" - kekhawatiran seperti itu sering kali bergantung pada apa yang Anda lakukan dengan data dan pertimbangan kinerja Anda.

Ada beberapa batasan mendasar pada ukuran meja. Anda tidak boleh memiliki lebih dari 1000 kolom. Catatan Anda tidak boleh lebih besar dari 8k masing-masing. Batasan ini berubah tergantung pada mesin database. (Yang di sini adalah untuk InnoDB.)

Sepertinya Anda telah menggabungkan beberapa kumpulan data yang berbeda menjadi satu tabel. Anda mungkin memiliki beberapa bidang yang memberi tahu Anda tentang kumpulan data yang terkait dengan catatan ini, bersama dengan beberapa bidang data, dan beberapa informasi stempel waktu. Itu bukan catatan yang sangat luas (kecuali jika Anda mencatat, katakanlah, semua parameter input dari setiap permintaan.) Masalah utama Anda adalah dengan selektivitas . Mengindeks tabel ini dengan cara yang berarti akan menjadi tantangan. Jika bidang umum Anda cukup selektif sehingga Anda dapat menggunakannya untuk mendapatkan catatan yang Anda inginkan tanpa berkonsultasi dengan tabel, itu akan menjadi nilai tambah yang besar. (Lihat pemindaian tabel)

Untuk banyak catatan per hari (pada dasarnya, dua per detik sepanjang hari, dan saya berasumsi Anda memiliki periode beban puncak yang jauh lebih tinggi), Anda juga ingin memastikan bahwa Anda secara khusus melihat pengoptimalan di meningkatkan kecepatan penyisipan . Sebagai aturan umum, lebih banyak indeks =penyisipan lebih lambat. Jika Anda bisa, pertimbangkan untuk mengarsipkan catatan usang ke tabel lain sepenuhnya. Di tempat kerja sebelumnya, kami telah menggunakan strategi pengarsipan Bulan Lalu, Tiga Bulan Sebelumnya, Enam Bulan Sebelumnya, masing-masing dalam tabel terpisah. Ide lain adalah untuk menghapus catatan lama. Banyak lingkungan tidak memerlukan informasi di luar tanggal tertentu. Bergantung pada catatan logging dari tiga bulan lalu seringkali terlalu mahal.

Terakhir, jangan abaikan penyimpanan fisik dari meja Anda. Semakin tipis catatan Anda, semakin sedikit IO fisik yang diperlukan untuk membaca (atau dalam hal ini, untuk menyisipkan) catatan. Anda dapat menyimpan indeks Anda pada hard drive fisik yang terpisah. Jika ada banyak data yang berlebihan dalam catatan Anda yang menyimpan tabel yang dikompresi mungkin sebenarnya merupakan peningkatan kecepatan. Jika Anda memiliki sedikit uang untuk dihabiskan, pertimbangkan nilai larik RAID yang baik untuk menghapus data Anda.

Jadi, untuk menjawab pertanyaan dasar Anda:ada banyak rekaman, tetapi dengan perhatian yang cermat terhadap penyetelan, itu tidak akan menjadi masalah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan MySQL tidak berfungsi saat menggunakan variabel php di mana klausa

  2. MySQL - Baris ke Kolom

  3. Hitung berapa banyak baris yang nilainya sama

  4. PHP mysql PDO menolak untuk menetapkan nilai NULL

  5. Memotong semua tabel dalam database MySQL dalam satu perintah?