Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да съхранявате URL адреси в MySQL

Според спецификация на DNS максималната дължина на името на домейна е :

255 * 3 =765 <767 (Само едва :-) )

Забележете обаче, че всеки компонент може да бъде само 63 знака.

Така че бих препоръчал да нарежете URL адреса на компонентни битове.

Използване на http://foo. example.com/a/really/long/path?with=lots&of=query¶meters=that&goes=on&forever&and=ever

Вероятно това би било достатъчно:

  • флаг на протокола ["http" -> 0 ] ( съхранявайте "http" като 0, "https" като 1 и т.н.)
  • поддомейн ["foo"] (255 - 63 =192 знака:мога да извадя още 2, защото min tld е 2 знака)
  • домейн ["example"], (63 знака)
  • tld ["com"] ( 4 знака за обработка на "info" tld )
  • път [ "a/really/long/path" ] (колкото искате -съхранете в отделна таблица )
  • queryparameters ["with=lots&of=query¶meters=that&goes=on&forever&and=ever" ] ( съхраняват се в отделна таблица с ключове/стойности )
  • рядко използвани неща с номер на порт/удостоверяване могат да бъдат в отделна таблица с ключове, ако наистина е необходимо.

Това ви дава някои приятни предимства:

  • Индексът е само в частите от URL адреса, в които трябва да търсите (по-малък индекс!)
  • заявките могат да бъдат ограничени до различните части за URL адрес (намерете всеки URL адрес във facebook домейна например)
  • всичко url, което има твърде дълъг поддомейн/домейн, е фалшиво
  • Лесно се отхвърлят параметрите на заявката.
  • Лесно за извършване търсене на име на домейн/tld без значение на главни букви
  • изхвърлете захарта в синтаксиса ( "://" след протокол, "." между поддомейн/домейн, домейн/tld, "/" между tld и пътя, "?" преди заявката, "&" "=" в заявка)
  • Избягва основния проблем с рядката таблица. Повечето URL адреси няма да имат параметри на заявката, нито дълги пътища. Ако тези полета са в отделна таблица, тогава основната ви таблица няма да приеме удара по размер. Когато правите заявки, повече записи ще се поберат в паметта, следователно по-бърза производителност на заявките.
  • (повече предимства тук).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL заявка за търсене в поле с JSON низ

  2. Последна дата и час от уникален индекс на mysql

  3. Запазване на акценти в MySQL база данни

  4. Как да получите СЛУЧАЙНИ записи от всяка категория в MySQL?

  5. MYSQL заявка за избор на резултат от условие на една таблица и показване на друга таблица