Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Направляю базе такую команду:
CREATE TABLE table
(id INT NOT NULL,
value TEXT NOT NULL
PRIMARY KEY (value)).
База отказывается выполнять.
Пишет, потому что не определено количество символов в value.
Та же реакция, если вместо модификатора TEXT использовать VARCHAR(1001).
Но выполняет чётко, если использовать VARCHAR(1000).
По какой причине?
Неактивен
По причине того, что TEXT - это очень большое поле. Если индексировать его целиком, то
индекс будет просто мегаогромный, поэтому Вам предлагается ограничиться некоторым
количеством символов в индексе. Например, PRIMARY KEY (value (20));
Если Вам действительно нужно индексировать TEXT, можете воспользоваться FULLTEXT-индексом.
Неактивен
1) Точно так же функционирует база, если тип ключа UNIQUE?
2) Назовите максимальное количество символов для FULLTEXT.
Неактивен
С этой точки зрения базе все равно, какого типа ключ. Будет ругаться на любой (кроме FULLTEXT, естественно), не только на PRIMARY.
На длину FULLTEXT-индекса ограничений нет.
О FULLTEXT подробнее здесь: http://dev.mysql.com/doc/refman/5.0/en/ … earch.html
Если будут совсем большие объемы (порядка терабайтов), то, говорят, лучше будет повесить на базу MySQL sphinx-сервер (см. http://sphinxsearch.com/). Но там тоже свои особенности...
Неактивен
У FULLTEXT-индекса есть маленькая особеннность - когда он перестаёт помещаться в памяти скорость поиска падает слишком заметно
При 5Gb текста в 3.5M записей индекс получается порядка 3Gb
При подобных обьёмах поиск слова/фразы занимает около 0.3/3 секунд, что примерно на порядок и соответственно на два порядка больше чем уходит у сфинкса на тех же данных
Неактивен
Страниц: 1