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

Apakah lebih cepat untuk menghubungkan/menggunakan MySQL di localhost daripada domain (bahkan jika domain diselesaikan ke komputer yang sama)?

Langsung menggunakan alamat IP dari antarmuka apa pun di localhost - baik antarmuka loopback (127.0.0.1) atau lainnya - adalah opsi dengan kinerja terbaik. Paket akan benar-benar dirutekan melalui antarmuka loopback (tidak peduli IP mana yang benar-benar digunakan) pada - secara praktis - kecepatan CPU.

Namun, ada tiga alasan untuk memilih 127.0.0.1 daripada IP antarmuka lain:

  • Antarmuka loopback sangat penting untuk pengoperasian sistem dan karena itu diinisialisasi sangat awal dalam proses boot dan hampir selalu tersedia.

  • Itu tidak terpengaruh oleh faktor eksternal:saat melepas kabel eth0 tidak dengan sendirinya mengganggu akses localhost ke dirinya sendiri melalui IP eth0, itu akan mengacaukan segalanya jika Anda memiliki salah satu dari banyak sistem "konfigurasi otomatis" yang akan dengan senang hati mematikan antarmuka saat kehilangan tautan.

  • Jika Anda memiliki pengaturan firewall, sangat mungkin bahwa rantai aturan lebih panjang (dan dengan demikian sedikit lebih buruk dari segi kinerja) ketika IP antarmuka publik terlibat.

Jika Anda menggunakan nama host, nama host localhost biasanya akan diselesaikan dengan pencarian /etc/hosts yang sangat cepat, meskipun menggunakan IP secara langsung menghapus pencarian ini sama sekali. Bergantung pada penyiapan Anda, banyak juga yang di-cache di memori sehingga hampir sangat cepat di kemudian hari.

Jika Anda menggunakan nama host publik, ini mungkin melibatkan kueri DNS yang menyiratkan penggunaan CPU tambahan dan latensi jaringan. Menggunakan server nama caching di host lokal sebagian besar akan menghapus masalah ini. Namun, perlu diingat bahwa mungkin masih ada masalah jika layanan DNS Anda menjadi tidak stabil.

Satu-satunya keuntungan menggunakan nama host publik adalah jika itu seperti db.example.com. yang memungkinkan Anda memindahkan database ke server terpisah tanpa harus mengubah konfigurasi klien.

Karena Anda menggunakan JDBC, saya menganggap bahwa Anda menggunakan kembali satu koneksi untuk semua pertanyaan Anda, dalam hal ini nama host yang menyelesaikan overhead itu sendiri harus diabaikan dalam semua kasus, kecuali jika Anda harus berurusan dengan server DNS yang rusak. Namun, mungkin masih ada beberapa manfaat dalam memilih alamat 127.0.0.1 untuk penyiapan firewall yang berpotensi lebih efisien.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengimpor file SQL yang lebih besar ke MySQL

  2. Cara menggunakan kotak centang untuk mengambil data tertentu dalam database

  3. Bagaimana saya tahu jika tabel mysql menggunakan myISAM atau InnoDB Engine?

  4. #1064 -Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MySQL Anda

  5. Masalah UTF8 MySQL di Rails - masalah penyandian dengan utf8_general_ci