[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: varchar unic index
Страницы: 1, 2
GET
Привет у меня есть таблица из 2-х поле
int1 / varchar 255

по varchar уникальный индекс. по нему будут искаться уникальные названия.

Как думаете, какую нагрузку выдержит такая таблица и не будет дедлоков?

Есть возможность немного денормализировать и добавить перед varchar дополнительное поле int2 и тогда сделать уникальным уже индекс: int2+varchar, чтоб как бы разгрузить SELECT

Стоит ли заморачиваться, как думаете?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Oyeme
Есть ли У Вас есть возможность использовать составные индексы то используйте их с полями integer.
В этом случаи индексация по varchar 250 не имеет смысла,так как Вы делаете полное сканирование каждой строчки
GET
Цитата
так как Вы делаете полное сканирование каждой строчки


В каком смысле.???

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
mysql же использует индекс по varchar`у и сразу же находит ту единственную строку или о чем разговор?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Oyeme
Цитата (ABC @ 21.02.2014 - 11:52)
mysql же использует индекс по varchar`у и сразу же находит ту единственную строку или о чем разговор?

Если у Вас тексты разделяются по словам,то весь индекс будет в кэше.
В этой ситации разница будет не велика.

Посмотри как происходит кеширование varchar -> char

http://dev.mysql.com/doc/refman/5.0/en/char.html
GET
Oyeme

А почему нет смысла использовать индекс по varchar, я не пойму почему?
Цитата
Если у Вас тексты разделяются по словам,то весь индекс будет в кэше.


Ну да...может я не понимаю, а в чем разница?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Я наверное совсем отупел под конец дня я так и не нашел там нечего. Способ хранения, про кеширование вообще ничего нету.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Короче рещил сократить индекс до 48 знаков, чтоб на всякий случай. smile.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Отмена...smile.gif он же уникальный должен быть.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Oyeme
Цитата
Короче рещил сократить индекс до 48 знаков, чтоб на всякий случай.


Это не имеет смысла,потом-что если Вы используете 5 символов,будет использовано только 5 байт,если Вы используете 10 символов будет использовано 10 байт.

В char это же наоборо.Char - заполняет не использовано место пустой информацией.

Цитата (ABC @ 21.02.2014 - 12:37)
Oyeme

А почему нет смысла использовать индекс по varchar, я не пойму почему?
Цитата
Если у Вас тексты разделяются по словам,то весь индекс будет в кэше.


Ну да...может я не понимаю, а в чем разница?

О каком количестве данных мы говорим?
Какая средняя длина информации будет у Вас в полях?
Как будет происходить поиск?Полными словами,по-символьно?
GET
Цитата
О каком количестве данных мы говорим?
Какая средняя длина информации будет у Вас в полях?
Как будет происходить поиск?Полными словами,по-символьно?


Будет думаю 500-800 тысяч строк.
Средняя длинна по 20-40 символов.
Поиск целеком, без LIKE т.е. name=$var //полное соответствие
Нагрузка по времени...ну не так чтоб часто, типа поиска названий книг там где есть удобные каталоги и без поиска, но он предусмотрен и как раз насчет него вся морока.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Oyeme
Цитата (ABC @ 21.02.2014 - 13:48)
Цитата
О каком количестве данных мы говорим?
Какая средняя длина информации будет у Вас в полях?
Как будет происходить поиск?Полными словами,по-символьно?


Будет думаю 500-800 тысяч строк.
Средняя длинна по 20-40 символов.
Поиск целеком, без LIKE т.е. name=$var //полное соответствие
Нагрузка по времени...ну не так чтоб часто, типа поиска названий книг там где есть удобные каталоги и без поиска, но он предусмотрен и как раз насчет него вся морока.

Попробуйте использовать Index - fulltext так вы будете искать по полным словам.

Индекс индексирует "слова",что делает его быстрее чем поиск по символьно.
GET
Цитата
Попробуйте использовать Index - fulltext так вы будете искать по полным словам.


там INNODB

мне не нужен fulltext, там будет полное соответствие по названиям документов. Как думаете с теми параметрами при таблице наполенной 800 тыс названиями.

При `name`='$var'//длинной, скажем 60 символов насколько тяжелым будет индекс, точнее будут ли дедлоки?

Цитата
А что, дедлоки зависят от размера индекса?


Я не могу спрогнозировать их причину в том, числе, но знаю. что это в том числе, когда железу тяжело.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.