Вопрос:
Каков наилучший тип данных для хранения URL-адресов в базе данных MySQL?
Идеал был бы тем, что не занимает много места, но может легко обрабатывать URL-адреса переменной длины.
Лучший ответ:
Если под “ссылками” вы подразумеваете ссылки на веб-страницы, я предполагаю, что вы хотите хранить URL-адреса.
Поскольку URL являются строками переменной длины , тип данных VARCHAR может показаться очевидным выбором.
Ответ №1
Вы можете хранить URL-адреса как простые строки, но будьте осторожны при сравнении значений, поскольку URL-адреса могут появляться в разных формах, фактически представляя одно и то же местоположение (например, с/без исходного идентификатора протокола или с/без конечной косой черты).
Ответ №2
Мы также можем взять BLOB-тип данных в базе данных mysql для URL и ссылки на файл
Ответ №3
Я рекомендую поле VARCHAR, и длина действительно представляет собой личное мнение о том, какие URL-адреса вы планируете хранить. Вы можете уйти с VARCHAR (255) без увеличения требований к хранению для поля VARCHAR без штрафа.
CREATE TABLE example( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, url varchar(125) ); $url = ‘http://www.google.com’; $sql = ‘INSERT INTO example SET url = ‘ . mysql_real_escape_string($url); Ответ №4
Мы можем использовать как Varchar(255), так и BLOB. URL хранится в текстовом формате в базе данных.
Ответ №5
Поскольку длина веб-URL для разных веб-сайтов и страниц различна, поэтому целесообразно использовать тип данных с различной длиной.
например, если мы хотим сохранить “www.google.com” в нашей базе данных, это не будет проблемой, но если мы хотим сохранить ссылку для результата поиска из Google, например
чем нам понадобится много места для этого.
Если вы создадите поле CHAR, достаточно большое для хранения этого URL-адреса, вы будете тратить значительное количество пространства практически на все остальные сохраняемые URL-адреса.
Поле переменной длины позволяет вам определить длину поля, которая может хранить нечетное длинное значение, не тратя впустую все это пространство для общих коротких значений. Текстовые поля переменной длины в MySQL используют только столько места, сколько необходимо для хранения отдельного значения в поле.
Например, поле VARCHAR (255), содержащее строку “www.google.com”, занимает всего 15 байтов (1 байт на каждый символ плюс дополнительный байт для хранения длины).
СОВЕТ: MySQL отличается от стандарта ANSI отсутствием полей VARCHAR. Любые лишние пробелы удаляются из значения перед его сохранением.