Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 01.02.2009
Сообщений: 21
1

Скорость одной или нескольких таблиц

04.05.2016, 09:23. Показов 788. Ответов 4

Author24 — интернет-сервис помощи студентам
Здравствуйте!
хочу попросить совета в проектировании БД.
В данный момент пишу многопоточный сервер, который осуществляет выборку данных из базы под управлением postgresql 9.4. Сейчас встал следующий вопрос: есть некий большой массив данных, который можно разбить на несколько таблиц, или же оставить в одной большой. Структура таблиц (большой или маленьких, не важно) будет примерно следующая:
id
name
key
...
searchstring
...

поиск осуществляется по полю searchstring, которое по факту хранит в себе текст.
Внимание, вопрос: где, в теории, поиск (именно поиск, а не запись) будет осуществляться быстрее? В одной таблице (один поток)? или же в нескольких (поиск в нескольких таблицах запущу в разных потоках)?

PS
напоминаю, что сервер многопоточный и к нему одновременно цепляются несколько клиентов
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2016, 09:23
Ответы с готовыми решениями:

Связь нескольких таблиц к одной
Здравствуйте, есть таблица Заявка, Место_загрузки , Место_выгрузки, как реализовать такую схему что...

Связь нескольких таблиц с одной
Здравствуйте, есть таблица Заявка, Место_загрузки , Место_выгрузки, как реализовать такую схему что...

объединение нескольких таблиц с одной (JOIN)
есть таблица контакт(код, фио) с ней связаны три таблицы: телефон ...

Ввод данных для нескольких таблиц с одной формы
Здравствуйте. Помогите советом, как организовать ввод данных для разных таблиц с одной формы? ...

4
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
Цитата Сообщение от Semus Посмотреть сообщение
Если это поле (searchstring) строковое его имеет смысл делать индексированным
Если поиск по началу слова
SQL
1
LIKE 'ABC%'
то имеет
1
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
06.05.2016, 15:52 5
Цитата Сообщение от Semus Посмотреть сообщение
содержит строку, в которой необходимо искать слово или же набор слов
Примерьте еще для себя вот этот функционал postgresql (full text search). Штука весьма специфическая, но вы больше знаете о вашей задаче.
1
06.05.2016, 15:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2016, 15:52
Помогаю со студенческими работами здесь

Формирование одной таблицы для вывода в шаблон из нескольких таблиц БД
Здравствуйте! Мне необходимо вывести в шаблон таблицу, которая получена на основе двух нескольких...

Выборка из двух таблиц, при совпадении нескольких параметров в одной колонке
делаю запрос: SELECT tab1.id FROM tab1,tab2 WHERE tab2.tab1_id = tab1.id AND (...

Расположить данные из нескольких таблиц по одной шкале времени и построить график
Есть 6 таблиц, все они x(t) но нужно сделать диаграмму x(y); x(z) ну и тд. Проблема в том что...

Как поместить данные из столбцов нескольких таблиц одного файла mdb в поля одной формы?
Как поместить данные из столбцов нескольких таблиц одного файла mdb в поля одной формы? Например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru