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

start [/forum/topic.php?fid=53&msg=34847060&tid=2004967]: |
0ms |
get settings: |
7ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 357ms |

| 0 / 0 |
