Re: Уникальная строка
- From
- Grigoriy Shpakov (2:5020/400)
- To
- "Ilya Kulagin" (2:5054/37.63)
- Date
- 2005-07-29T11:56:44Z
- Area
- SU.DBMS.SQL
From: Grigoriy Shpakov <grigory@sirena2000.ru>
Как-то раз Ilya Kulagin(kiv@kiv.pp.ru) написал:
DS>> можно триггер завести, который будет проверять. но без индексов,
DS>> которые увеличат размер таблицы вдвое он будет дико тормозной.
IK> Только вот одна беда: с точки зрения шины данных нет разницы, прокачает
IK> триггер таблицу или индекс, равный таблице по размеру...
Разница есть, и чем больше таблица - тем она значительнее. Потому как при
отсутствии индекса поиск по таблице линейный, и для нахождения нужной записи
нужно прокачать в среднем половину таблицы. А поиск по индексу - двоичный, и
количество записей, которые нужно прокачать по шине данных, примерно равно
двоичному логарифму от числа записей в таблице (с округлением вверх до
целого), причем даже в самом плохом случае.
DS>> так что выбирайте,
IK> И в этом частном случае выбирай-не выбирай, один хрен получается.
Не один хрен. "DS" (извини, имя уже стерлось) правильно написал: или
индекс размером с саму таблицу, или жуткие тормоза при поиске. Но не оба
сразу.
--
Григорий Шпаков
Бывший 2:5020/198.39 AKA /213.25 AKA /54.35 AKA grigory@sirena.rinet.ru
Ныне grigory@sirena2000.ru
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
* Origin: Talk.Mail.Ru (2:5020/400)
SEEN-BY: 46/50 50/203 520 450/159 186 1024 451/30 454/9 461/43 132 640 469/999
SEEN-BY: 4614/20 4616/3 4625/8 4627/10 4641/444 5000/76 5000 5001/5001 5006/1
SEEN-BY: 5007/1 5010/53 70 5011/13 5012/23 46 5015/10 5019/31 5020/52 118 175
SEEN-BY: 5020/194 400 545 604 715 758 830 892 894 1042 1057 1200 1523 1604
SEEN-BY: 5020/1665 1909 1922 2013 2020 2238 4441 8383 5021/29 5025/3 750
SEEN-BY: 5026/10 14 45 5027/16 5029/32 5030/115 217 473 556 966 1063 1339 1900
SEEN-BY: 5034/13 5035/38 5036/1 34 5040/47 5042/13 5047/43 5049/1 5051/15
SEEN-BY: 5053/16 5054/1 8 9 28 35 37 45 63 67 5055/95 5057/1 5059/37 5060/88
SEEN-BY: 5061/15 5062/1 5066/18 5069/7 5070/1222 5079/23 5080/68 1003 5081/2
SEEN-BY: 5082/6 5083/21 5084/32 5085/13 5090/106 5092/1 5095/20 5099/133
SEEN-BY: 6000/12 254 6009/1
PATH: 5020/400 4441 545 5054/1 37