![]() |
[Q]Парсинг большой бд
Что имеем:
1) большую бд (порядка) 300 метров 2) 63к записей. Значит в каждой записи имеется несколько ссылок Цитата:
Цитата:
Цитата:
Хотел бы выслушать ваши предложения |
можно и так:
Код:
#!usr/bin/perl |
Цитата:
Способ 1: Слить базу на локальный комп и там распарсить. Способ 2: Если локальный комп слабый, то слить базу и распарсить через C++. Способ 3: Распарсить удалённо используя C++. |
Вполне можно и на php с использованием sleep(1)
|
set_time_limit(0)
SET TRANSATION и поехал че хочешь с ней ковырять...заливай на удаленную машину, запускай и иди курить, придешь - соптимизируется... У нас на работе для 2-3кк записей на ночь оставляли |
ах да..кто не понял база - мускул
UPD// набросать кто может на php? |
PHP код:
|
#Wolf# По-хорошему, лучше сделать полный дамп базы и обработать, иначе будет слишком много запросов к БД.
PHP код:
|
for($i=$begin;;$i+=$count) - ошибко, или я чтото не понимаю оО
|
Gifts, можете пример привести, с дампом как в php?
|
Цитата:
|
draliokero Разницы большой не будет - просто читаем файл дампа построчно (fgets), а потом просто восстанавливаем БД из этого дампа. Выгода - не убьем базу, меньшее количество обращений к БД, не надо следить за кавычками
m0Hze Zedi Синтаксис for такой же как в Си. Любые переменные в for($i1;$i2;$i3) - могут быть пропущены. В случае пропуска второго параметра - цикл будет выполняться бесконечно. Поэтому внутри цикла есть break; #Wolf# В скрипт закралась ошибка, вместо $tmp=str_replace нужно $tmp=preg_replace |
Цитата:
1) PHP код:
2) тестил с одной новостью. фор пока убрал. так новость отлично режется но не апдейтится. ругается . вот к примеру выборка из бд PHP код:
PHP код:
|
Аааа вы нарки... не легче сдампить это всё дело и пустить скрипт для распарсивания в шеле?...
|
2#Wolf#
1)http://www.php.ru/manual/language.operators.assignment.html 2) if ($tmp!=$row['full_news']) $update=mysql_query("UPDATE posts SET full_news='$tmp' WHERE full_news='".mysql_real_escape_string($row['full_news'])."'"); |
#Wolf# Ну я же написал что не уверен в экранировании) У PaCo тоже не совсем правильно. Надо:
PHP код:
|
| Время: 04:32 |