Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];

Вниз

SharSet и Collate - на что влияют   Найти похожие ветки 

 
Ura   (2002-05-02 14:20) [0]

Вопрос вдогонку по создании индекса при Collate. Индекс не создаеться из двух столбцов. Если Collate ибрать все ок.
Исли Я уберу коллате то что я потеряю - по идее НИЧЕГО. Так в чем же смысл Collate и SharSet?


 
Ura   (2002-05-06 14:23) [1]

Кто-нибудь знает или нет?


 
Johnmen   (2002-05-06 14:35) [2]

Смысл в применимости UPPER()...
Возможно есть и другие, но мною они не обнаружены...


 
Alexandr   (2002-05-06 14:35) [3]

см. статью про русские буквы на
www.ibase.ru

там очень популярно на этот счет написано


 
Desdechado   (2002-05-06 14:35) [4]

смысл Collate - некоторый способ упорядочивания при сортировке символов. он немного разный в разных Collate.
смысл Charset - возможность чтения/записи в определенной кодировке


 
Ura   (2002-05-06 14:45) [5]

Какое дело базе в какой кодировке Я храню данные? Или она может перекодировать кодировки т.е. данные лежат в WIN1251 а в Linux стоит кодировка Koи8. Я могу заставить перекодировать??? (написав какой-нибудь фильтр и подсоединив его к СУБД). Или нет.
Про коллате все ясно - это просто указатель на таблицу весов символов при сортировке .... ???


 
Reindeer Moss Eater   (2002-05-06 14:48) [6]

Есть ограничение на длину индексного выражения для строки.
Если поле создано с collate то каждый символ занимает три байта, а не один.


 
Desdechado   (2002-05-06 14:55) [7]

2 Reindeer Moss Eater (06.05.02 14:48)
> Если поле создано с collate то каждый символ занимает три байта, а не один.
число байт на символ зависит от Collate


 
Reindeer Moss Eater   (2002-05-06 14:58) [8]

Я и говорю, что зависит


 
Ura   (2002-05-06 15:24) [9]

Совсем запутался. А зачем вообще эти настройки. Может сделать лучше юникод. Если это все равно помощи не окажет ...


 
Reindeer Moss Eater   (2002-05-06 15:26) [10]

Тебе же сказали по-русски, что если поле создано с Collate,
то индекс по нему может быть создан если длина поля <= 84 символа


 
kaif   (2002-05-07 02:19) [11]

Я когда-то по наивности работал без CHARSET . Так вот, при упорядочивании имел вместо правильного:
Вася
вася
Геша
гоша
Неправильное:
Вася
Геша
вася
гоша.
То есть так, как расположены ASCII символы. Сначала все большие буквы "А".."Я", затем все маленькие, начиная с "а". Буква "Ё" вообще могла оказаться где попало.
Но самое важное, действительно, UPPER. Мало установить CHARSET. Без COLLATE upper не заработает. Просто не найдет ни хрена для русских выражений.
Ограничение на длину индекса себя оправдывает. Не так уж нужны индексированные строки более 84 символов.


 
Desdechado   (2002-05-07 10:40) [12]

Если очень надо индекс по длинным полям, ставь Win1251 и делай UDF вместо UPPER, тогда не нужен COLLATE, но некоторые фокусы (не очень заметные) все-таки останутся.
Если тебе индекс нужен типа UNIQUE, т.е. для проверки, а не для упорядочивания при выборке, то такое решение вполне пройдет.


 
Ura   (2002-05-07 11:57) [13]

Спасибо всем. Понял.
Сделал только CHARSET Win1251 без COLLATE. И индекс 50+50.
Для чего нужен уникальный индекс - заводской номер техники и код техники в реестре. А реестров несколько.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
4-97450
Jack`
2002-03-05 13:57
2002.05.30
Объём оперативки


3-97138
Iris
2002-05-03 09:20
2002.05.30
Вопрос связанный с БД


14-97397
Ginger
2002-04-22 00:46
2002.05.30
Помогите!!!


3-97174
Oleg_er
2002-05-07 08:29
2002.05.30
длина строки


6-97379
Olgerd
2002-03-14 19:39
2002.05.30
Как узнать IP клиента?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский