Текущий архив: 2002.12.02;
Скачать: 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 вся ветка
Текущий архив: 2002.12.02;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c