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

Bagaimana cara menyimpan URL di MySQL

Menurut spesifikasi DNS panjang maksimum nama domain adalah :

255 * 3 =765 <767 (Hampir saja :-) )

Namun perhatikan bahwa setiap komponen hanya dapat terdiri dari 63 karakter.

Jadi saya sarankan memotong url ke dalam bit komponen.

Menggunakan http://foo. example.com/a/really/long/path?with=lots&of=query¶meters=that&goes=on&forever&and=ever

Mungkin ini cukup:

  • bendera protokol ["http" -> 0 ] ( simpan "http" sebagai 0, "https" sebagai 1, dll. )
  • subdomain ["foo" ] ( 255 - 63 =192 karakter :Saya dapat mengurangi 2 lagi karena min tld adalah 2 karakter )
  • domain ["contoh"], ( 63 karakter )
  • tld ["com"] ( 4 karakter untuk menangani "info" tld )
  • path [ "a/really/long/path" ] ( selama yang Anda inginkan -simpan di tabel terpisah )
  • parameter kueri ["with=lots&of=query¶meters=that&goes=on&forever&and=ever" ] ( simpan di tabel kunci/nilai terpisah )
  • portnumber / otentikasi hal-hal yang jarang digunakan dapat berada di tabel dengan kunci terpisah jika benar-benar dibutuhkan.

Ini memberi Anda beberapa keuntungan bagus:

  • Indeks hanya pada bagian url yang perlu Anda cari (indeks lebih kecil! )
  • kueri dapat dibatasi ke berbagai bagian url (misalnya temukan setiap url di domain facebook)
  • url apa pun yang memiliki subdomain/domain terlalu panjang adalah palsu
  • mudah membuang parameter kueri.
  • pencarian nama domain yang tidak peka huruf besar/kecil mudah dilakukan
  • buang gula sintaks ( "://" setelah protokol, "." antara subdomain/domain, domain/tld, "/" antara tld dan jalur, "?" sebelum kueri, "&" "=" di permintaan)
  • Menghindari masalah tabel sparse yang utama. Sebagian besar url tidak akan memiliki parameter kueri, atau jalur panjang. Jika bidang ini berada di tabel terpisah maka tabel utama Anda tidak akan menerima ukuran. Saat melakukan kueri, lebih banyak catatan akan masuk ke dalam memori, sehingga kinerja kueri lebih cepat.
  • (lebih banyak keuntungan di sini).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan id yang dimasukkan terakhir dari tabel MySQL

  2. Dua indeks duplikat dengan kolom yang sama

  3. Mengapa PDO mencetak kata sandi saya ketika koneksi gagal?

  4. Pencarian teks lengkap MySQL, mengapa saya mendapatkan argumen yang salah ke MATCH

  5. Cara memantau penyatuan koneksi untuk .NET MySQL Data Connector di IIS