Вниз
Скачать: CL | DM;

РАЗБИТЬ БОЛЬШУЮ ТАБЛИЦУ НА МЕНЬШИЕ   Найти похожие ветки 

 
KonstVD   (2002-11-14 13:28) [0]

Есть таблица db с приличным количеством записей, поля, по которым производятся выборки - символьное имя документа и циферное=тип документа[0..9]+ID[0..999999]. Чаще выбирается
по циферному имени. Если разбить таблицу на 10 меньших по типу док-та (db0, db1, ..., db9) и при выборке по циферному Nnnnnnn делать select * from dbN where X=nnnnnn увеличится ли заметно
быстродействие? И насколько? И как тогда правильно делать select из всех таблиц по символьному имени?


 
Val ©   (2002-11-14 13:51) [1]

думаю, наоборот, время запроса может увеличится при обращении к 10 таблицам, вместо одной.
Используете ли индексы?
Возможно, есть огрехи в структуре бд, приведите пожалуйста структуру таблицы и расскажите общий смысл работы с ней.


 
Prooksius ©   (2002-11-14 13:59) [2]

Сколько у тебя записей в этой таблице?
Быстродействие увеличится, если юзер не будет тянуть на себя все содержимое таблиц и работать с немерянным кол-вом записей. Все равно со всеми записями он не поработает. Выбирай по какому-то критерию, чтобы меньше было.
А селект - по-моему надо union использовать. Но вот тут насчет быстродействия проблемы, ИМХО.
Я бы не бил на 10 таблиц. Не логично - таблицы содержат одно и то же - документы, так чего же их должно быть 10.
Не вытягивай все данные на клиента. Ограничивай запросы.


 
KonstVD   (2002-11-14 17:00) [3]

Да нет, смысл в том, что поиск в основном идет по номеру документа, и программа делает select не на 10 таблиц сразу, а на таблицу с именем начала номера документа. Например, если документ 1nnnnnn - то таблица db1, если 6nnnnnn - то select from db6 и т.п. Выборка из всех таблиц сразу по символьному имени - частный и редкий случай. А записей ~300000. И таблица примерно такая:
ID N 9 0 - циферный ID
NAME C 50 - символьный ID
NAME_N С 30 - символьный ID 2
далее десяток символьных полей - "описания" к предыдущим.
Критерий выбора есть, одновременно выбирается не более 100-200 записей. Индексы по первым двум полям.


 
Prooksius ©   (2002-11-14 17:23) [4]

100-200 записей - не должно быть тормозов. Поищи, может тормоза из-за чего-то другого.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
3-4255
Varbend
2002-11-15 01:45
2002.12.02
БД и локальные сети


1-4429
Novichek
2002-11-19 14:05
2002.12.02
Сортировка


3-4214
SerKom
2002-11-14 09:26
2002.12.02
TTable или TQuery


1-4340
wam
2002-11-22 03:49
2002.12.02
Polybezier по многим точкам


6-4543
Aralekin
2002-09-30 13:47
2002.12.02
Ах этот мерзкий UDP!!!!




   Наверх