Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách lưu trữ URL trong MySQL

Theo thông số DNS độ dài tối đa của tên miền là:

255 * 3 =765 <767 (Chỉ vừa đủ :-))

Tuy nhiên, lưu ý rằng mỗi thành phần chỉ có thể dài 63 ký tự.

Vì vậy, tôi khuyên bạn nên cắt url thành các bit thành phần.

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

Có lẽ điều này sẽ là đủ:

  • cờ giao thức ["http" -> 0] (lưu trữ "http" dưới dạng 0, "https" là 1, v.v.)
  • subdomain ["foo"] (255 - 63 =192 ký tự:Tôi có thể trừ thêm 2 ký tự vì min tld là 2 ký tự)
  • miền ["example"], (63 ký tự)
  • tld ["com"] (4 ký tự để xử lý "thông tin" tld)
  • path ["a / really / long / path"] (miễn là bạn muốn - lưu trữ trong một bảng riêng )
  • queryparameters ["with =lot &of =query ¶meter =that &going =on &forever &and =ever"] ( lưu trữ trong một bảng khóa / giá trị riêng biệt )
  • nội dung xác thực / portnumber hiếm khi được sử dụng có thể nằm trong một bảng được khóa riêng biệt nếu thực sự cần thiết.

Điều này mang lại cho bạn một số lợi thế tốt:

  • Chỉ mục chỉ nằm trên các phần của url mà bạn cần tìm kiếm (chỉ mục nhỏ hơn!)
  • các truy vấn có thể được giới hạn trong các phần url khác nhau (ví dụ:tìm mọi url trong miền facebook)
  • bất kỳ url nào có miền phụ / miền phụ quá dài đều là không có thật
  • dễ dàng loại bỏ các tham số truy vấn.
  • dễ dàng thực hiện tên miền không phân biệt chữ hoa chữ thường / tìm kiếm tld
  • loại bỏ cú pháp đường ("://" sau giao thức, "." giữa tên miền phụ / tên miền, tên miền / tld, "/" giữa tld và đường dẫn, "?" trước truy vấn, "&" "=" trong truy vấn)
  • Tránh được vấn đề lớn về bảng thưa thớt. Hầu hết các url sẽ không có tham số truy vấn, cũng không có đường dẫn dài. Nếu các trường này nằm trong một bảng riêng biệt thì bảng chính của bạn sẽ không có kích thước lần truy cập. Khi thực hiện truy vấn, nhiều bản ghi hơn sẽ phù hợp với bộ nhớ, do đó hiệu suất truy vấn nhanh hơn.
  • (nhiều lợi thế hơn tại đây).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python, Brew và MySQLdb

  2. Codeigniter - nhiều kết nối cơ sở dữ liệu

  3. COUNT (*) trả về nhiều hàng thay vì chỉ một hàng

  4. Cài đặt Máy chủ Web trong Windows XP với Apache2, PHP5 và MySQL4 - Phần 1

  5. Cách quản lý tình trạng phòng trống dựa trên số ngày hoặc số tháng làm việc