Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / multiple SELECT or CREATE / 6 сообщений из 6, страница 1 из 1
03.10.2007, 21:16
    #34845092
Безон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
multiple SELECT or CREATE
Нужно наиболее эффективно решить следующую задачу:
Имеются таблицы:
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
04.10.2007, 13:05
    #34846564
v0v4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
multiple SELECT or CREATE
БезонНужно наиболее эффективно решить следующую задачу:
Имеются таблицы:
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
04.10.2007, 13:21
    #34846644
Bezon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
multiple SELECT or CREATE
Я делаю так:
Для каждой страницы в отдельной транзакции проверяю есть ли страница с таким урл. Если есть то возвращаю ее id если нет то пытаюсь вставить и если возникает constraint violation то откатываю транзакцию и проверяю опять.
Но работает это медленно:-)
...
Рейтинг: 0 / 0
04.10.2007, 15:13
    #34847060
v0v4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
multiple SELECT or CREATE
А вы это делаете с клиента или хранимкой?
Приведите часть кода, если можно.
...
Рейтинг: 0 / 0
05.10.2007, 10:23
    #34848705
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
multiple SELECT or CREATE
Bezon- проверяю есть ли страница с таким урл
- если нет то пытаюсь вставить
- если возникает constraint violation то откатываю транзакцию
- и проверяю опять
Но работает это медленно:-)Понять, какая из этих операций работает медленно. Что значит "медленно" - в миллисекундах. :)

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


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