0 / 0 / 1
Регистрация: 01.02.2009
Сообщений: 21
|
|
1 | |
Скорость одной или нескольких таблиц04.05.2016, 09:23. Показов 788. Ответов 4
Метки postgresql (Все метки)
Здравствуйте!
хочу попросить совета в проектировании БД. В данный момент пишу многопоточный сервер, который осуществляет выборку данных из базы под управлением postgresql 9.4. Сейчас встал следующий вопрос: есть некий большой массив данных, который можно разбить на несколько таблиц, или же оставить в одной большой. Структура таблиц (большой или маленьких, не важно) будет примерно следующая: id name key ... searchstring ... поиск осуществляется по полю searchstring, которое по факту хранит в себе текст. Внимание, вопрос: где, в теории, поиск (именно поиск, а не запись) будет осуществляться быстрее? В одной таблице (один поток)? или же в нескольких (поиск в нескольких таблицах запущу в разных потоках)? PS напоминаю, что сервер многопоточный и к нему одновременно цепляются несколько клиентов
0
|
04.05.2016, 09:23 | |
Ответы с готовыми решениями:
4
Связь нескольких таблиц к одной Связь нескольких таблиц с одной объединение нескольких таблиц с одной (JOIN) Ввод данных для нескольких таблиц с одной формы |
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
|
|
06.05.2016, 14:15 | 2 |
здесь вопрос неоднозначный. что конкретно вы будете искать в searchstring?
Чем больше таблица, тем больше индекс. Чем больше индекс, тем больше времени занимает поиск по индексу. Соответственно, если будет выборка "условно произвольного" набора записей, требующая каждый раз "долгого блуждания" по индексу, то выигрыша практически не будет. Вы просто будете заставлять базу каждый раз делать одни и те же действия. Если удастся прикрутить разумный партишионинг, который будет соответствовать типам запросов относительно searchstring, то выигрыш очевидно будет, так как будут использоваться индексы меньшего размера, требующие меньших телодвижений.
1
|
0 / 0 / 1
Регистрация: 01.02.2009
Сообщений: 21
|
|
06.05.2016, 14:19 [ТС] | 3 |
searchstring - в том то и суть, содержит строку, в которой необходимо искать слово или же набор слов.
И еще один вопрос. Если это поле (searchstring) строковое его имеет смысл делать индексированным?
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
06.05.2016, 15:16 | 4 |
1
|
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
|
|
06.05.2016, 15:52 | 5 |
Примерьте еще для себя вот этот функционал postgresql (full text search). Штука весьма специфическая, но вы больше знаете о вашей задаче.
1
|
06.05.2016, 15:52 | |
06.05.2016, 15:52 | |
Помогаю со студенческими работами здесь
5
Формирование одной таблицы для вывода в шаблон из нескольких таблиц БД Выборка из двух таблиц, при совпадении нескольких параметров в одной колонке Расположить данные из нескольких таблиц по одной шкале времени и построить график Как поместить данные из столбцов нескольких таблиц одного файла mdb в поля одной формы? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |