- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
в общем то чтобы убрать наверняка, ме надо поиграть с бд и запросами, но навскидку попробую наугад подсказать индекс который поможет. это будет индекс по 4 полям
думаю что должно помочь, но может и не помочь, если не поможет, то "крутить" надо :)
думаю что должно помочь, но может и не помочь, если не поможет, то "крутить" надо
+100500
желательно делайте индексы по нескольким полям, по которым идет выборка и сортировка. тогда filesort должен уйти в небытие. ну и смотрите каждый подбираемый индекс в explain)
желательно делайте индексы по нескольким полям, по которым идет выборка и сортировка
мускуль еще не всегда любит "порядок" полей в индексе, иногда отказывается юзать :D, а поменяешь 2 поля местами и все залетает хах)
user_id, talk_activity, talk_comments_qty, talk_last_comment_timestamp
все 4 поля у меня в индексе , я экспериментировал только с talk_last_comment_timestamp
мускуль еще не всегда любит "порядок" полей в индексе, иногда отказывается юзать , а поменяешь 2 поля местами и все залетает хах)
а как посоветуете тестами заниматься? достаточно ли того как делаю это я?
все 4 поля у меня в индексе , я экспериментировал только с talk_last_comment_timestamp
покажите show create table talk;
желательно делайте индексы по нескольким полям, по которым идет выборка и сортировка. тогда filesort должен уйти в небытие.
один индекс на несколько полей или как?
Miracle добавил 09.03.2010 в 18:06
вообщем, делал по всякому - filesort не уходит в бытие
Miracle добавил 09.03.2010 в 18:07
вот таблица
`talk_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) unsigned DEFAULT NULL,
`cat_id` tinyint(3) unsigned DEFAULT NULL,
`talk_topic` varchar(255) DEFAULT NULL,
`talk_text` text,
`talk_text_anonce` text,
`talk_activity` tinyint(1) unsigned DEFAULT '1',
`talk_status` tinyint(3) unsigned DEFAULT '0',
`talk_last_comment_timestamp` int(11) unsigned DEFAULT NULL,
`talk_comments_qty` int(6) unsigned DEFAULT '0',
`talk_timestamp` int(11) unsigned DEFAULT NULL,
`talk_tags` varchar(255) DEFAULT NULL,
`talk_user_ip` varchar(14) DEFAULT NULL,
`rate_pl` int(11) unsigned NOT NULL DEFAULT '0',
`rate_mi` int(11) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`talk_id`),
KEY `user_id` (`user_id`),
KEY `talk_timestamp` (`talk_timestamp`),
KEY `talk_last_comment_timestamp` (`talk_last_comment_timestamp`),
KEY `cat_id` (`cat_id`),
KEY `talk_activity` (`talk_activity`),
KEY `talk_comments_qty` (`talk_comments_qty`)
) ENGINE=MyISAM AUTO_INCREMENT=2585 DEFAULT CHARSET=utf8;
дайте дампы, я поиграюсь, а? интересно стало :)
можно слать на ya@helldude.ru
bearman добавил 09.03.2010 в 18:08
обожаю мускуль оптимизировать, это лучше чем сео =))
тоже от тебя мало что зависит, можно только "помогать" и ждать результат :D
Действительно, запихайте побольше данных. Способ выполнения запроса у mysql зависит от текущих данных, а не только от структуры. С ростом объема он может поменяться и может случиться неприятный сюрприз.
Ваш случай специфический: несмотря на созданный индекс mysql прогнозирует почти то же самое число затронутых строк что и без индекса. Накладные расходы на последовательное считывание таблицы в произвольном порядке (ALL) как она лежит на диске могут оказаться меньше считывания в порядке индекса потому что файловые системы и диски легче справляются с последовательным чтением.
Что касается filesort : именно так обозначается сортировка вообще, не обязательно во временном файле, несмотря на слово file в названии. То есть не обязательно все очень плохо. Использование сложных составных индексов разумеется влияет на скорость обновления таблицы. Тут бы не перестараться изгоняя filesort.
Ну и выложите базу, поди не секреты какие.
Мне ваши результаты explain кажутся странными. Самый очевидный индекс следовало делать по talk_last_comment_timestamp, но похоже из-за desc он не используется. Комментарии ведь равномерно разложены во времени,а все остальные индексы с низкой селективностью. Данные в talk_last_comment_timestamp реальны или забиты мусором для тестирования ?
netwind добавил 09.03.2010 в 21:09
Вот пришел домой и попытался сгенерировать данные как смог - talk_last_comment_timestamp равномерно распределен среди 3000 записей. В моем "мусоре" все отлично :