Может кто подскажет где почитать как работать с таблицами с большим количеством записей.
Как читать данные и как хранить промежуточные результаты.
Задача бешать по содержанию таблицы и сравнивать записи
Re: Работа с таблицами с болшим количеством записей
SM>Может кто подскажет где почитать как работать с таблицами с большим количеством записей. SM>Как читать данные и как хранить промежуточные результаты. SM>Задача бешать по содержанию таблицы и сравнивать записи
С помощью SQL.
Если серьезно, то маловато данных для нормального ответа.
Re[2]: Работа с таблицами с болшим количеством записей
Здравствуйте, chaotic-good, Вы писали:
SM>>Может кто подскажет где почитать как работать с таблицами с большим количеством записей. SM>>Как читать данные и как хранить промежуточные результаты. SM>>Задача бешать по содержанию таблицы и сравнивать записи
CG>С помощью SQL.
CG>Если серьезно, то маловато данных для нормального ответа.
Есть таблица, в которой ооочень много записей. Она пополняется в реальном времени.
Вот из этой таблице надо находить записи с одинаковыми значениями не по ключевому полю и их кешировать.
Вопрос как читать данные из таблицы. Записи добавляются довольно часто.
Re[3]: Работа с таблицами с болшим количеством записей
Здравствуйте, SullenMan, Вы писали:
SM>Здравствуйте, chaotic-good, Вы писали:
SM>>>Может кто подскажет где почитать как работать с таблицами с большим количеством записей. SM>>>Как читать данные и как хранить промежуточные результаты. SM>>>Задача бешать по содержанию таблицы и сравнивать записи
CG>>С помощью SQL.
CG>>Если серьезно, то маловато данных для нормального ответа. SM>Есть таблица, в которой ооочень много записей. Она пополняется в реальном времени. SM>Вот из этой таблице надо находить записи с одинаковыми значениями не по ключевому полю и их кешировать. SM>Вопрос как читать данные из таблицы. Записи добавляются довольно часто.
Что за таблица, где хранится, структура, по каким полям искать и какие ключевые. И очень много — это сколько? Без этого ничего толком сказать нельзя.
SM>Есть таблица, в которой ооочень много записей. Она пополняется в реальном времени. SM>Вот из этой таблице надо находить записи с одинаковыми значениями не по ключевому полю и их кешировать. SM>Вопрос как читать данные из таблицы. Записи добавляются довольно часто.
А хрен его знает что делать, что значит кешировать, каким образом нужно это делать, что значит добавляются часто, для кого-то часто это раз в секунду, для кого-то другого часто это 10М раз в секунду Находить нужно как? Это поиск дубликатов какой-нибудь? Если это действительно поиск дубликатов и данных действительно очень много и никак не добавить хотя бы пару лишних индексов, то можно заюзать алгоритм MinHash для поиска дубликатов. Но вот реализовать это все поверх SQL может быть нетривиальной задачей. Нужно и сами данные в таблице изучать и схему БД изменять.
Re[3]: Работа с таблицами с болшим количеством записей
Здравствуйте, SullenMan, Вы писали:
CG>>Если серьезно, то маловато данных для нормального ответа. SM>Есть таблица, в которой ооочень много записей. Она пополняется в реальном времени. SM>Вот из этой таблице надо находить записи с одинаковыми значениями не по ключевому полю и их кешировать.
SQL-ная база данных. SM>Вопрос как читать данные из таблицы. Записи добавляются довольно часто.
Начинай писать что значит часто. Тут есть парни для которых 60нс это часто.
Sic luceat lux!
Re: Работа с таблицами с болшим количеством записей
Здравствуйте, SullenMan, Вы писали:
SM>Может кто подскажет где почитать как работать с таблицами с большим количеством записей. SM>Как читать данные и как хранить промежуточные результаты. SM>Задача бешать по содержанию таблицы и сравнивать записи
ок. Постораюсь подробнее.
таблица
userid
userdesc
data
userdesc по определённому правилу и они могут совпадать
ключивые поля userid, userdesc
Записи добавляются не через равные промежутки но часто (ну допустим до 100 в минуту)
Нужно написать веб сервис который по определённому правилу для userdesc ищет совпадения для пары userid
соответственно идея какая — нудно создать веб сервис который в фоне будет постоянно искать совпадения и загонять их в хэш таблицу к которой будет обращаться веб сервис при запросе пары userid
Вот как правильно искать этьи совпадения постоянно перелопачивая записи в бд.
Неужели каждый раз курсором пробегать по всем записям таблицы и для каждого userid ещё раз пробегать по userdesc чтобы найти совпадения
Re[2]: Работа с таблицами с болшим количеством записей
Здравствуйте, SullenMan, Вы писали:
SM>userdesc по определённому правилу и они могут совпадать SM>ключивые поля userid, userdesc SM>Записи добавляются не через равные промежутки но часто (ну допустим до 100 в минуту) SM>Нужно написать веб сервис который по определённому правилу для userdesc ищет совпадения для пары userid SM>соответственно идея какая — нудно создать веб сервис который в фоне будет постоянно искать совпадения и загонять их в хэш таблицу к которой будет обращаться веб сервис при запросе пары userid SM>Вот как правильно искать этьи совпадения постоянно перелопачивая записи в бд. SM>Неужели каждый раз курсором пробегать по всем записям таблицы и для каждого userid ещё раз пробегать по userdesc чтобы найти совпадения
1. Это задача бд и к с++ отношения не имеет.
2. 100 записей в минуту — это не много.
3. СУБД какая? Пробегать придется. Но если покрыть индексами работать как-то будет.
Здравствуйте, BlackEric, Вы писали:
BE>Здравствуйте, SullenMan, Вы писали:
SM>>userdesc по определённому правилу и они могут совпадать SM>>ключивые поля userid, userdesc SM>>Записи добавляются не через равные промежутки но часто (ну допустим до 100 в минуту) SM>>Нужно написать веб сервис который по определённому правилу для userdesc ищет совпадения для пары userid SM>>соответственно идея какая — нудно создать веб сервис который в фоне будет постоянно искать совпадения и загонять их в хэш таблицу к которой будет обращаться веб сервис при запросе пары userid SM>>Вот как правильно искать этьи совпадения постоянно перелопачивая записи в бд. SM>>Неужели каждый раз курсором пробегать по всем записям таблицы и для каждого userid ещё раз пробегать по userdesc чтобы найти совпадения
BE>1. Это задача бд и к с++ отношения не имеет. BE>2. 100 записей в минуту — это не много. BE>3. СУБД какая? Пробегать придется. Но если покрыть индексами работать как-то будет.
MSSql
Т. е. всю логику по выборке и сравнению на sql решать?
Re[4]: Работа с таблицами с болшим количеством записей
SM>Нужно написать веб сервис который по определённому правилу для userdesc ищет совпадения для пары userid SM>соответственно идея какая — нудно создать веб сервис который в фоне будет постоянно искать совпадения и загонять их в хэш таблицу к которой будет обращаться веб сервис при запросе пары userid SM>Вот как правильно искать этьи совпадения постоянно перелопачивая записи в бд. SM>Неужели каждый раз курсором пробегать по всем записям таблицы и для каждого userid ещё раз пробегать по userdesc чтобы найти совпадения
При чем тут курсор? Используй силу SQL.
Re[3]: Работа с таблицами с болшим количеством записей
SM>>Записи добавляются не через равные промежутки но часто (ну допустим до 100 в минуту) BZ>я плакал. недавно обхяснял человеку как хешировать 256 ГБ/с, а у тебя раз в секунду — много
Помни, всегда есть тот, у кого длиннее!
Re: Работа с таблицами с болшим количеством записей
Здравствуйте, SullenMan, Вы писали:
SM>>Может кто подскажет где почитать как работать с таблицами с большим количеством записей. SM>>Как читать данные и как хранить промежуточные результаты. SM>>Задача бешать по содержанию таблицы и сравнивать записи
SM>ок. Постораюсь подробнее. SM>таблица SM>userid SM>userdesc SM>data
SM>userdesc по определённому правилу и они могут совпадать SM>ключивые поля userid, userdesc SM>Записи добавляются не через равные промежутки но часто (ну допустим до 100 в минуту) SM>Нужно написать веб сервис который по определённому правилу для userdesc ищет совпадения для пары userid SM>соответственно идея какая — нудно создать веб сервис который в фоне будет постоянно искать совпадения и загонять их в хэш таблицу к которой будет обращаться веб сервис при запросе пары userid
Это вопрос из цикла "легче взять и сделать за тебя, чем объяснить тебе". Но это, естественно, за твою зарплату.
Так что ответа на твой вопрос не получится.
SM>Вот как правильно искать этьи совпадения постоянно перелопачивая записи в бд.
Писать соотв. запросы, создавать соотв. для них индексы.
SM>Неужели каждый раз курсором пробегать по всем записям таблицы и для каждого userid ещё раз пробегать по userdesc чтобы найти совпадения
Ни в коем случае.
Re: Работа с таблицами с болшим количеством записей
Здравствуйте, SullenMan, Вы писали:
SM>Может кто подскажет где почитать как работать с таблицами с большим количеством записей. SM>Как читать данные и как хранить промежуточные результаты. SM>Задача бешать по содержанию таблицы и сравнивать записи
1. Задачи "бешать по содержанию таблицы" в природе не бывает. Вам поставили задачу, вы придумали какое-то решение для неё, где составной частью является "бешать и сравнивать". Очевидно, что это решение — результат ограниченных представлений об устройстве СУБД и типичных методах решения типичных задач. Вернитесь на шаг назад, сформулируйте ту задачу, которую вы на самом деле решаете. В данном форуме достаточно описать что-то типа "пользователь заходит на страницу, и должен увидеть там Х. Поскольку N у меня в задаче велико (>>M), я беспокоюсь о производительности этой страницы. Что мне делать?"
2. Когда вы сформулируете задачу в терминах "мне нужно показать на странице X", вам ответят "select X from ...". Чем подробнее вы напишете, как у вас хранятся данные, тем точнее будет часть с "...".
3. Теперь вы сможете перейти к вопросу, который можно осмысленно обсуждать. Он должен звучать как-то так: "у меня select X from ...; выполняется А мс, бюджет на это — Б мс. В продакшне записей будет в W раз больше. Что делать?"
Уйдемте отсюда, Румата! У вас слишком богатые погреба.