powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / multiple SELECT or CREATE
6 сообщений из 6, страница 1 из 1
multiple SELECT or CREATE
    #34845092
Безон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно наиболее эффективно решить следующую задачу:
Имеются таблицы:
sites (id, domain); pages(id, site_id, path); anchors (source_page_id, target_page_id, text). Они описывают сайты, страницы на них и ссылки между страницами соответственно. Краулер ходит по инету и индексируют известные страницы, вытаскивая с них ссылки. После парсинга страницы краулеру приходится вставлять в базу некоторое количество (40-50) новых страниц (pages) сайтов ну и понятное дело ссылок. Страница (и сайт) должны вставляться только если больше нет страниц с таким же site_id, path (для сайта domain). В таблицах есть unique индекс по этим полям.
Краулеров больше 10 и все они работают с одной базой. Возникает вопрос как наиболее эффективно организовать вставку новых страниц (и сайтов).
...
Рейтинг: 0 / 0
multiple SELECT or CREATE
    #34846564
v0v4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БезонНужно наиболее эффективно решить следующую задачу:
Имеются таблицы:
sites (id, domain); pages(id, site_id, path); anchors (source_page_id, target_page_id, text). Они описывают сайты, страницы на них и ссылки между страницами соответственно. Краулер ходит по инету и индексируют известные страницы, вытаскивая с них ссылки. После парсинга страницы краулеру приходится вставлять в базу некоторое количество (40-50) новых страниц (pages) сайтов ну и понятное дело ссылок. Страница (и сайт) должны вставляться только если больше нет страниц с таким же site_id, path (для сайта domain). В таблицах есть unique индекс по этим полям.
Краулеров больше 10 и все они работают с одной базой. Возникает вопрос как наиболее эффективно организовать вставку новых страниц (и сайтов).
Такое ощущение, что вы ставите ТЗ участникам форума :). Предлагаю вам сообщить подробно где конкретно возникают трудности. Или изложить ваши мысли и варианты решения для обсуждения и совета наиболее эффективного решения.
...
Рейтинг: 0 / 0
multiple SELECT or CREATE
    #34846644
Bezon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делаю так:
Для каждой страницы в отдельной транзакции проверяю есть ли страница с таким урл. Если есть то возвращаю ее id если нет то пытаюсь вставить и если возникает constraint violation то откатываю транзакцию и проверяю опять.
Но работает это медленно:-)
...
Рейтинг: 0 / 0
multiple SELECT or CREATE
    #34847060
v0v4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вы это делаете с клиента или хранимкой?
Приведите часть кода, если можно.
...
Рейтинг: 0 / 0
multiple SELECT or CREATE
    #34848705
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bezon- проверяю есть ли страница с таким урл
- если нет то пытаюсь вставить
- если возникает constraint violation то откатываю транзакцию
- и проверяю опять
Но работает это медленно:-)Понять, какая из этих операций работает медленно. Что значит "медленно" - в миллисекундах. :)

PS v0v4ikА вы это делаете с клиента или хранимкой?В хранимке можно управлять транзакциями?
...
Рейтинг: 0 / 0
multiple SELECT or CREATE
    #34849667
v0v4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBatВ хранимке можно управлять транзакциями?
А может здесь и не надо управлять транзакциями?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / multiple SELECT or CREATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]