- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Продолжаю мониторить лог медленных запросов у себя на сервере - теперь мое удивление вызывают запросы вида:
SET timestamp=1351673498;
DELETE FROM jos_session WHERE ( time < '1351672296' );
Записей в таблице редко когда бывает больше 2000 - почему тогда так долго выполняются такие запросы?
индекс на поле time нужен. + желателен LIMIT, если это конечно вообще возможно.
Если я правильно понимаю - индекс уже есть, или нет?
`username` varchar(150) DEFAULT '',
`time` varchar(14) DEFAULT '',
`session_id` varchar(200) NOT NULL DEFAULT '0',
`guest` tinyint(4) DEFAULT '1',
`userid` int(11) DEFAULT '0',
`usertype` varchar(50) DEFAULT '',
`gid` tinyint(3) unsigned NOT NULL DEFAULT '0',
`client_id` tinyint(3) unsigned NOT NULL DEFAULT '0',
`data` longtext,
PRIMARY KEY (`session_id`(64)),
KEY `whosonline` (`guest`,`usertype`),
KEY `userid` (`userid`),
KEY `time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=u
Индекс есть...
вот только у вас же используется time() (timestamp) - почему тогда поле varchar(14)? int(11) нужно - работать будет быстрее чем с текстовым вариантом.
Спасибо, поле изменил - наблюдаю...
---------- Добавлено 31.10.2012 в 14:24 ----------
Нет - изменение поля никак не повлияло - запросы продолжают заносится в лог, вот последний
SET timestamp=1351678665;
SELECT * FROM jos_session WHERE session_id = 'qq37qi1d5kpubsl9sf82k84kv2';
Нет - изменение поля никак не повлияло - запросы продолжают заносится в лог, вот последний
Ну в первом посте у вас был delete - там точно помогло.
А тут - у вас выборка одного поля - добавлять limit 1 нужно, так как мускул без Limit ганяет всю таблицу - отсюда и задержка.
+ у вас session_id я так понимаю md5 хеш. - он всегда равен 32, почему тогда поле varchar(200) ? хватит и 32, да и индекс (праймори) тоже 64, хватит 32.
Единственное что понял и смог сделать - это изменил в поле session_id 200 на 64
Как добавить limit 1 ?
Индекс праймори как поменять?
Вроде индекс поменял, теперь такая структура:
`username` varchar(150) DEFAULT '',
`time` int(11) DEFAULT NULL,
`session_id` varchar(32) NOT NULL DEFAULT '0',
`guest` tinyint(4) DEFAULT '1',
`userid` int(11) DEFAULT '0',
`usertype` varchar(50) DEFAULT '',
`gid` tinyint(3) unsigned NOT NULL DEFAULT '0',
`client_id` tinyint(3) unsigned NOT NULL DEFAULT '0',
`data` longtext,
PRIMARY KEY (`session_id`),
KEY `whosonline` (`guest`,`usertype`),
KEY `userid` (`userid`),
KEY `time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Это сам запрос изменить нужно, в коде.
Индексы - в phpmyadmin они в низу (если выбрать "структура" таблицы), под списком полей (чуть пониже чем "добавить поле")
Там список индексов, редактируются типа как поля. Несложно.
+ вроде вам индекс уже менять не нужно.
`session_id` varchar(32) NOT NULL DEFAULT '0',
не varchar а char(32), там всегда 32
Вот решение проблемы:
Выполняем два запроса
ALTER TABLE `jos_session` TYPE = memory
Тем самым переносим таблицу в оперативную память, мне помогло