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

Kepraktisan beberapa database per klien vs satu database

Ya, itu mungkin dan perusahaan saya melakukannya. Saya tentu tidak akan mengatakan itu pintar. Kami memiliki sistem otomatisasi pemasaran SAAS. Beberapa database klien memiliki 1 juta+ catatan. Kami menangani database "umum" kedua yang memiliki tabel "pemenuhan" yang melacak email, surat, panggilan telepon, dll dengan lebih dari 4 juta catatan, ditambah banyak tabel bersama yang sangat besar lainnya. Dengan pengindeksan yang tepat, pengoptimalan, pemeliharaan server khusus DB yang terpisah, dan mungkin pengelompokan (yang belum harus kita lakukan), Anda dapat menangani BANYAK data......dalam banyak kasus, mereka yang berpikir itu bisa hanya menangani beberapa ratus ribu rekaman yang bekerja pada produk pesaing untuk mencari nafkah. Jika Anda masih ragu apakah itu valid, pertimbangkan bahwa per metrik pengelompokan MySQL, kluster 8 server dapat menangani 2,5 juta pembaruan PER DETIK. Tidak terlalu lusuh sama sekali.....

Masalah dengan menggunakan dua database adalah menyulap beberapa koneksi. Apakah itu sulit? Tidak terlalu. Anda membuat objek yang berbeda dan mereferensikan kelas koneksi Anda berdasarkan database yang Anda inginkan. Dalam kasus kami, kami menekan kelas perusahaan database utama untuk menyimpulkan nama db klien dan kemudian membangun koneksi kedua berdasarkan itu. Namun, ketika Anda mengubah koneksi tersebut bolak-balik, Anda dapat mengalami kesalahan yang memerlukan debug ekstra. Ini bukan hanya "Apakah kueri saya valid?" tapi "Apakah saya benar-benar mendapatkan koneksi database yang benar?" Dalam kasus kami, sesi yang dihentikan dapat menyebabkan semua jenis kesalahan PDO terpicu karena sistem tidak lagi dapat melacak basis data klien mana yang akan diakses. Plus, dari sudut pandang pemeliharaan, ini adalah proses yang menakutkan mencoba mendorong pembaruan struktur tabel ke 100 database langsung yang berbeda. Ya, itu bisa otomatis. Tapi satu kesalahan dan Anda telah menjatuhkan BANYAK orang dan membuat banyak pekerjaan ekstra untuk diri Anda sendiri. Sekarang, hitung pengembangan dan pengujian ekstra yang diperlukan untuk mengubah koneksi dan mendorong pembaruan....itu akan menjadi ukuran Anda apakah itu bermanfaat.

Rekomendasi saya? Temukan host yang memungkinkan Anda menempatkan dua mesin di jaringan lokal yang sama. Kami memilih Linode, tetapi siapa yang Anda gunakan tidak relevan. Mulailah dengan server database khusus Anda, rencanakan terlebih dahulu untuk melakukan pengelompokan saat diperlukan. Simpan semua konten Anda dalam satu DB, indeks dan optimalkan secara religius. Akhirnya, temukan pria DB yang BENAR-BENAR baik dan perlakukan dia dengan baik. Dengan data sebanyak itu, DBA yang hebat akan menjadi suatu keharusan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grup MySQL berdasarkan nilai berurutan

  2. Cari entri - dalam Database (tanpa menentukan nama Kolom/Nama tabel)

  3. Memanggil Prosedur Tersimpan dalam Prosedur Tersimpan di MySQL

  4. Cara memilih nama kolom secara dinamis di mySQL

  5. Permintaan mysql untuk menentukan apakah datetime yang diberikan termasuk dalam interval datetime