- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть табличка в которую пишутся логи:
(
`IP` varchar(16) NOT NULL,
`REFFER` varchar(2000) default NULL,
`REFFER_HOST` varchar(2000) default NULL,
);
Записи в ней примерно такие:
127.0.0.1 | http://yandex.ru/search?... | yandex.ru
127.0.0.1 | http://yandex.ru/blablab?... | yandex.ru
127.0.0.1 | http://google.com/sss?... | google.com
И запрос, который определяет с какого сайта ко мне больше всего приходят посетителей (домен, уник. посетитель, просмотры):
Нужно оптимизировать таблицу - убрать `REFFER_HOST` и изменить запрос, чтобы имя домена определялось прямо в нем.
Возможно ли это сделать?
Если у вас MySQL, попробуйте как-нибудь так:
SELECT SUBSTRING(REFER_HOST, 8, INSTR(SUBSTRING(REFER_HOST , 8), '/') - 1) as `STR`, COUNT(DISTINCT IP) as `VISITS`,COUNT(*) as `HITS` FROM `log` GROUP BY SUBSTRING(REFER_HOST, 8, INSTR(SUBSTRING(REFER_HOST , 8), '/') - 1) ORDER BY `HITS`
что за бред. пишите оптимизировать и тут же убрать `REFFER_HOST`. что он там для красоты чтоли?
Упс, опечатался.
Вот так:
SELECT SUBSTRING(REFFER, 8, INSTR(SUBSTRING(REFER , 8), '/') - 1) as `STR`, COUNT(DISTINCT IP) as `VISITS`,COUNT(*) as `HITS` FROM `log` GROUP BY SUBSTRING(REFFER, 8, INSTR(SUBSTRING(REFFER, 8), '/') - 1) ORDER BY `HITS`
WEBAFF,
это будет не оптимизация, а черт знает что. Вы уменьшите размер таблицы, но проиграете в скорости работы запроса - вам не просто придется обрабатывать строковыми функциями каждую строку выборки, но еще и группировать по на лету вычисляемому полю...
Всем спасибо, я уже отказался от этой идеи. Оставил как было, так реально быстрее и удобнее.
а еще читайте документацию. http://dev.mysql.com/doc/refman/5.0/en/char.html
а дата посещения не записывается что-ли? первичный индекс тоже отрицаете?
если запрос критичный, то можно сразу при вставке хранить и учитывать в отдельной таблице (ид_хоста int, имя хоста varchar, число_записей int). индексы : primary key ид_хоста, обычный на число_записей