Возник вопрос следующего характера. Буду Вам признателен, если Вы выскажете своё мнение.
При попытке перенести форум с бесплатного хостинга на платый столкнулся с тем, что по прежнему адресу в базе был, видимо, установлен метод сравнения по столбцу word_text таблицы search_wordlist чувствительный к регистру, поскольку под разными word_id числятся одинаковые слова, написанные со строчной и прописной буквы. Например: слова Работа и работа - это две разные записи в таблице.
В новой базе по умолчанию регистр при сравнении не учитывается, соответственно, когда пытаешься выгрузить дамп, возникает ошибка о дублировании записей, поскольку в запросах INSERT INTO попадаются слова, которые уже встречались в таблице ранее, а теперь фигурируют в дампе с большой или, напротив, с маленькой буквы.
Пытаясь найти выход из положения, я установил для поля word_text в таблице search_wordlist атрибут BINARY, после чего дамп спокойно выгрузился и поиск заработал.
Но потом на одном форуме по MySQL меня напугали, что из-за такой меры, могут возникнуть всякого рода проблемы с сортировкой данных по этому полю и всякие другие, и посоветовали просто поставить сравнение, чувствительное к регистру, что я и сделал, прописав в запросе, создающем таблицу
Код: Выделить всё
word_text varchar(50) NOT NULL collate cp1251_general_cs
Но как я понимаю, оба этих способа приводят к тому, что поиск ведётся с учётом регистра написания слова.
Теперь, просмотрев Ваш форум, я вижу, что таблицы поиска вообще можно не выгружать дампом, а восстановить переиндексацией с помощью соответствующего мода, что представляется мне в высшей степени разумным. Данный мод решил все мои проблемы. Но вот вопрос, касающийся того, насколько корректно было бы назначать бинарность столбцу word_text остался.
Поэтому я был бы Вам очень признателен, если бы Вы ответили мне:
1. Будет ли корректно работать форум и поиск, если у столбца word_text в таблице search_wordlist будет назначен атрибут BINARY?
2. Если с бинарностью поиск работать будет, какие негативные последствия может повлечь за собой установка этого атрибута, кроме того, что поиск будет происходить с учётом регистра?
3. Если просто прописывать для поля word_text
Код: Выделить всё
word_text varchar(50) NOT NULL collate cp1251_general_cs
Заранее благодарю за ответ.