Заливаем кейворды в MySQL


хх … вспомним старое 🙂 вроде времени немного появилось для онлайн работы, рутраф не прет (по крайней мере у меня) поэтому буду возвращаться к анлоязычному сектору (оно и пожирнее будет).

Основа основ — кейворды. Овертюра сдулась, а остальные кейвордовые инструменты платные, поэтому для доргенов кейворды я буду вытягивать из купленной в далекий 2006г 44 миллионной базы Пастухова. Кстати сейчас уже 77 миллионов, правда параметров стало поменьше.

База у меня в виде текстовых файликов — по первой букве кейворда, напр. keywordsg.txt — кеи начинающиеся с буквы «g».

Распишу как быстро загрузить на локальную машинку (у меня стоит Денвер), по аналогии и на сервак (принцип тот же).

Перед всеми действиями желательно настроить ваш MySql на использование больших объемов памяти, чем стоит по умолчанию (по умолчанию как правило на минимум стоит) — для этого my.cnf следует заменить на my-huge.cnf  (в денвере их по умолчанию в базовом пакете нет — скачайте дополнение к mysql — появятся).

Для запуска сварганил батник import.bat следующего содержания:

cls

z:\usr\local\mysql5\bin\mysql.exe -u root SE < enkeys.sql

Сам enkeys.sql будет такой:

CREATE TABLE enkeys (

— непосредственно кейворд
key VARCHAR( 80 ) NOT NULL ,

— количество запросов в овертюре, т.е. сколько людей ищут такой кей в месяц (спрос)
overture INT NOT NULL ,

— количество запросов по вордтракеру (спрос)
wtrack INT NOT NULL ,

— количество страниц в индексе гугла по такому кею (конкурентность)
gidx INT NOT NULL ,

— количество страниц в индексе гугла по кею в кавычках — строгий запрос (конкурентность)
gstrong INT NOT NULL,

— количество страниц в индексе гугла по кею в тайтле страницы (конкурентность)
gtitle INT NOT NULL
) TYPE = MYISAM ;
—непострдственно ВОЛШЕБНАЯ комманда

LOAD DATA INFILE «Z:\\home\\192.168.0.44\\www\\keys\\keywords’.txt» INTO TABLE enkeys (key, overture, wtrack, @dummy, gidx, gstrong, gtitle);

— таких строчек всего 44 штуки организовалось, делается очень быстро вручную с помощью комманды dir >file.txt и FAR-а (блочное копирование — вставка)

LOAD DATA INFILE «Z:\\home\\192.168.0.44\\www\\keys\\keywordsz.txt» INTO TABLE enkeys (key, overture, wtrack, @dummy, gidx, gstrong, gtitle);

Обратите внимание —

  1. Грузим не инсертами, а LOAD DATA INFILE ! Так во много раз быстрее !
  2. Исходный файл был на 16 полей — я же оставил только 6 ! ненужные для загрузки поля пропускаем следующим синтаксисом — @dummy. (база и так огромная — линшее нам не надо)

В итоге у меня загрузка заняла минут 10 — и это 44 миллиона кеев ! инфы на 3 гига в текстовых файлах!

Далее «чистим» базу — уже на свое усмотрение, сильно пожмете — хорошие кеи можете убить, слабо — база будет медленная, причем неоправданно — уж очень много всяких явно гавенных кеев.

Лично я делал так (то что помню)

— Добавил индекс по gidx

ALTER TABLE enkeys ADD INDEX ( gidx );

— Убил страницы с содержанием

DELETE FROM enkeys WHERE gidx < 1000;

Добавил индексы по вордтракеру и овертюре и удалил если и то и другое меньше 10 (уже точно не понмю).

Ну и в конце, после удалений оптимизировал таблицу OPTIMIZE TABLE enkeys;

и добавил индекс на сам ключевик

ALTER TABLE enkeys ADD INDEX ( key );

ОЧЕНЬ ВАЖНЫЙ ИНДЕКС ! (для выборок по содержанию слова)

В итоге у меня база получилось на приблизительно 2 миллиона кеев.

Запрос в phpmyadmin-е на входжение «entermin» (таблеточка фентермин, если кто не знает) на моем сервачке (средненький такой сервант по железу) дал такой результат (197 всего, запрос занял 0.7931 сек.) — думаю неплохо и поставленной цели я добился.

Локально (на денвере) пока продолжаю играться с базой. Как закончу — результаты напишу в комментариях.

P.S.

Желающим приобрести базы у господина Пастухова — очень реккомендую сначала стукнуть мне ! Скидка в 20% обеспечена + хороший (имхо) совет 🙂

<Хвостовой>

Различная детская стенка подростковая, заказ кухни недорого

</Хвостовой>


11 комментариев на «“Заливаем кейворды в MySQL”»

  1. у тебя блог деньги из паутины называется, а пишешь про то что у тебя их нет. сделай еще отрицательный рейтинг чтобы хоть как-то задержать посетителя.

  2. это где я написал что у меня нет денег ?
    я частенько пишу, что нет времени — это самое главное.
    щас и пишу, что начало появляться время на онлайн работу — значит будет и отдача

  3. 2Место
    Конечно выполнит, но за какое время ?
    ты в цикле инсертами собрался добавлять или как ? если да то твой скрипт отработает раз в 30 медленнее, т.е. часика 3 🙂
    а вышеприведенная комбинация за 15 минут

    2zor
    слил бы конечно, если несколько бы 🙂
    1. еслиб кей был не entermin а phentermine
    2. еслиб не было условия поиска в русскоязычном секторе
    3. еслиб такая выдача была с американского айпишника
    а по такому кею с такими условиями с наших айпи к сожалению не будет ни одного уника

  4. 2Место
    Заливка всей базы из 44 лимонов заняла 2 минуты 41 секунду
    А теперь давай — сделай тоже самое скриптом на перле 🙂
    Разве что те-же комманды только из перла сделать 🙂

  5. Думаю по сравнению с 2006 годом сейчас статистика по кейвордам кардинально изменилась, но в любом случае спс за базу, лишней уж точно не будет

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *