mysqld
- From
- Ilya Kulagin (2:5020/871.18)
- To
- Eugene Grosbein
- Date
- 2006-11-10T16:15:02Z
- Area
- RU.UNIX.BSD
Добрый день (утро, вечер, ночь), Eugene!
EG> И есть некоторые непонятки с использованием сервером индексов,
EG> в частности индексы он не всегда использует, в зависимости от своих
EG> "эвристических" оценок эффективности индекса иногда решает делать full
EG> scan, что меня не устраивает.
EG> Есть мысль проапгрейдить сервер, но будет ли толк?
Вряд ли. Если индекс не используется из-за того, что устарела статистика, так любая версия мыскля обновляет статистику только при reorganize table, а это двойное место на диске и exclusive lock на всю таблицу на всё время переноса данных. Если индекс не используется из-за того, что в выборку (по оценке через статистику) попадает слишком много записей - так любой вообще сервер БД работает так же. Операция выборки записи по индексу нихрена не бесплатная (точнее, время её выборки оценивается как пропорциональное логарифму размера таблицы) и выбрать, например, четверть таблицы, пока она достаточно мала, дешевле seqscan-ом, чем по индексу. По времени дешевле. Точные коэффициенты пропорциональности и алгоритмы расчётов обычно намертво зашиты в оптимайзер запросов и слегка комментированы в документах по проектированию баз данных. Не уверен, что в случае мыскля кто-то такие документы рисовал, я по информиксу сужу.
Вот такие грустные мысли.
Примите уверение в совершеннейшем к Вам почтении
/kiv
--- kiv@work [Престарелые алкоголики] [Иллюзорных судаков не существует!]
* Origin: Moose 2:5020/871.18 (2:5020/871.18)
SEEN-BY: 50/12 203 400/814 450/118 186 1024 451/30 550/196 4614/20 4635/4
SEEN-BY: 5000/5000 5011/13 5012/46 5015/28 5019/31 5020/40 104 113 154 175 400
SEEN-BY: 5020/545 549 627 758 770 871 950 969 976 996 1068 1127 1159 1201 1297
SEEN-BY: 5020/1356 1452 1523 1581 1590 1604 1630 2009 2142 2238 2395 2424 2450
SEEN-BY: 5020/2590 2871 3274 4441 5480 11200 12000 5021/3 29 5022/128 5025/3
SEEN-BY: 5025/750 5027/12 5029/32 5030/49 500 556 966 1063 1080 1900 1957 2828
SEEN-BY: 5031/47 70 5035/38 5040/47 5042/13 5045/7 5049/50 97 5054/1 4 8 9 11
SEEN-BY: 5054/28 35 36 37 45 63 66 67 70 75 84 85 5055/95 5059/9 37 5062/1 10
SEEN-BY: 5063/3 5064/7 5076/1 5077/70 5080/80 1003 5082/6 5083/21 5084/9
SEEN-BY: 5085/13 5090/108 5094/4 5095/20 5096/18 5099/11 6001/10
PATH: 5020/871 758 4441 545 5054/1 37