Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-4440
alcat
2002-11-20 01:56
2002.12.02
Проблема с ReadLn


1-4309
BJValentine
2002-11-21 11:25
2002.12.02
FindFirst, FindNext, FindClose


1-4395
al-bee
2002-11-22 12:57
2002.12.02
Впорос по сепараторам


3-4249
_pavel_
2002-11-14 13:53
2002.12.02
Apollo и даты


7-4645
DESANN
2002-09-29 04:04
2002.12.02
Блокировка мыши/клавиатуры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский