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

Bagaimana menangani terlalu banyak koneksi bersamaan bahkan setelah menggunakan kumpulan koneksi?

Batangnya tidak cukup spesifik untuk memberikan saran yang tegas, tetapi daftar lengkap yang dapat dilakukan adalah sebagai berikut:

  • Kluster basis data :Cocok untuk situasi di mana Anda tidak ingin mengubah lapisan aplikasi dan hanya database yang Anda sentuh. Ada batasan seberapa banyak Anda bisa keluar dari cluster database. Jika volume permintaan Anda terus bertambah, solusi ini pada akhirnya akan gagal juga. Namun kabar baiknya adalah Anda memiliki semua fungsi yang sudah Anda miliki di MySQL satu instance biasa.
  • Berbagi :Karena pertanyaan Anda ditandai dengan MySQL, dan tidak mendukung sharding sendiri, jika Anda ingin menggunakan solusi ini, Anda perlu mengimplementasikannya di lapisan aplikasi Anda. Dalam solusi ini Anda akan menyebarkan data Anda ke beberapa database (sebaiknya di beberapa instance MySQL pada perangkat keras yang terpisah) secara logis. Ini akan menjadi tanggung jawab Anda untuk menemukan database yang sesuai yang menyimpan data yang Anda tentukan. Ini adalah salah satu solusi paling efektif yang pernah ada tetapi tidak selalu layak. Kelemahan terbesarnya adalah data yang tersebar di antara dua atau lebih database tidak dapat dimasukkan dalam transaksi.
  • Replikasi :Bergantung pada skenario Anda, Anda mungkin dapat menggabungkan replikasi basis data dan memiliki salinan data Anda di dalamnya. Dengan cara ini Anda dapat terhubung ke mereka alih-alih database master dan mengurangi beban di atasnya. Definisi replikasi default adalah skenario master/slave di mana aliran data adalah satu arah, dari master ke slave. Jadi perubahan yang mungkin Anda buat pada budak saat akan diterapkan pada salep, itu tidak akan mempengaruhi master. Tetapi ada juga konfigurasi replikasi master/master di mana aliran data dalam dua arah. Namun Anda tidak dapat mengasumsikan integritas atomik untuk perubahan data bersamaan di antara kedua master. Pada akhirnya solusi ini paling efektif jika Anda berencana untuk menggunakannya dalam mode master/slave dan menggunakan slave untuk akses read-only.
  • Menyimpan dalam cache :Mungkin solusi ini tidak harus dimasukkan di sini tetapi karena batang Anda tidak menolaknya, ini dia. Salah satu cara untuk mengurangi beban basis data adalah dengan men-cache datanya setelah diekstraksi. Solusi ini dapat bermanfaat khususnya jika mengekstraksi data mahal. Ada banyak server cache di luar sana, seperti memcached atau redis . Dengan cara ini Anda dapat menghilangkan begitu banyak koneksi database tetapi hanya untuk ekstraksi data.
  • Mesin penyimpanan lainnya :Anda selalu dapat beralih ke mesin yang lebih berkinerja jika mesin Anda saat ini tidak menyediakan apa yang Anda butuhkan. Tentu saja ini hanya layak jika kebutuhan Anda memungkinkan. Saat ini ada mesin NoSQL, jauh lebih berperforma daripada RDBMS, yang mendukung sharding secara asli dan Anda dapat menskalakannya secara linier dengan upaya minimal. Ada juga solusi berbasis Lucene di luar sana dengan kemampuan pencarian teks lengkap yang kuat yang memberi Anda sharding otomatis yang sama. Faktanya satu-satunya alasan mengapa Anda harus menggunakan RDBMS tradisional adalah perilaku transaksi yang atomik. Tetapi jika transaksi bukan keharusan, ada solusi yang jauh lebih baik daripada RDBMS.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mengapa kita membagi tabel mysql menjadi banyak tabel yang lebih kecil?

  2. Menyimpan Perubahan di SlickGrid dengan php

  3. Bagaimana cara mengambil cadangan satu tabel dalam database MySQL?

  4. Bagaimana cara memperbarui bidang untuk menambah nilai ke nilai yang ada?

  5. MySql mendapatkan catatan atau data harian, mingguan, bulanan dan tahunan