Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.10.2007, 21:16
|
|||
|---|---|---|---|
multiple SELECT or CREATE |
|||
|
#18+
Нужно наиболее эффективно решить следующую задачу: Имеются таблицы: 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 и все они работают с одной базой. Возникает вопрос как наиболее эффективно организовать вставку новых страниц (и сайтов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2007, 13:05
|
|||
|---|---|---|---|
|
|||
multiple SELECT or CREATE |
|||
|
#18+
БезонНужно наиболее эффективно решить следующую задачу: Имеются таблицы: 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 и все они работают с одной базой. Возникает вопрос как наиболее эффективно организовать вставку новых страниц (и сайтов). Такое ощущение, что вы ставите ТЗ участникам форума :). Предлагаю вам сообщить подробно где конкретно возникают трудности. Или изложить ваши мысли и варианты решения для обсуждения и совета наиболее эффективного решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2007, 13:21
|
|||
|---|---|---|---|
|
|||
multiple SELECT or CREATE |
|||
|
#18+
Я делаю так: Для каждой страницы в отдельной транзакции проверяю есть ли страница с таким урл. Если есть то возвращаю ее id если нет то пытаюсь вставить и если возникает constraint violation то откатываю транзакцию и проверяю опять. Но работает это медленно:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2007, 15:13
|
|||
|---|---|---|---|
|
|||
multiple SELECT or CREATE |
|||
|
#18+
А вы это делаете с клиента или хранимкой? Приведите часть кода, если можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.10.2007, 10:23
|
|||
|---|---|---|---|
|
|||
multiple SELECT or CREATE |
|||
|
#18+
Bezon- проверяю есть ли страница с таким урл - если нет то пытаюсь вставить - если возникает constraint violation то откатываю транзакцию - и проверяю опять Но работает это медленно:-)Понять, какая из этих операций работает медленно. Что значит "медленно" - в миллисекундах. :) PS v0v4ikА вы это делаете с клиента или хранимкой?В хранимке можно управлять транзакциями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2004967]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
| others: | 217ms |
| total: | 332ms |

| 0 / 0 |
