Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Нужна помощь по MySQL за деньги


Автор: svalkasu 28.9.2009, 12:24
Очень странный и не понятный глюк.
Нужна помощь профессионалов!

Ситуация:
Делаем доску объявлений, в базе 15 таблиц с объявлениями на страну (пример: ru / ua / kz / az .....)

1.Серфим по сайту 3-4 часа, по всем странам, городам, маркам и моделям, делаем разные выборки (сортируем по ценам и прочему).
2.В момент серфинга (п.1) генерирование странички, т.е. обработка запросов = 1-2 секунды.
3.Не трогаем сайт пару часов, заходим на Россию/Москва/Samsung и так же по всем странам/городам и видим ==> все точно так же, как и 2 часа до этого.
4.Заходим Азербайджан/Баку/Samsug - страничка генерируется 27 сек!
5.Серфим по Азербайджану, первые несколько запросоыв генерируются "по убывающей" 15 сек -> 10 сек -> 7 сек -> 4сек -> 2 сек
6.После того, как Азербайджанскую таблицу (az) - потормошили, она как будто просыпается и работает так же, как и все остальные страны.
7.Стоит не ходить по сайту, все повторяется снова.
8.Такое ощущение, что таблица (az) Азербайджанских объявлений заколдованная.

Что уже делали:
1.Думали что на хостинге база лежит на битом винте, заливали по 3 одинаковых базы и подключали разные.
2.Думали, что хостинг "не тот", сменили 3 хостинга + виртуалку на FirstVDS (там работало еще хуже, чем на любом хостинге).
3.Для чистоты эксперимента выкинули весь интерфейс, положили на никому не известный домен (только для себя).
4.Кроме, того, что на страничку выводится время генерирования (внизу) + стали писать все в лог-файл.
5.Таблицы ru / ua / kz / az - практически одинаковы по размеру
6.В windows+apache+mysql - всё нормально

Три дня "последних тестов" ==> казалось, что "ну вроде  всё мускул одолели" ... сегодня с утра полез смотреть ==>

Запрос - Россия/Москва/Samsung/продаю - 1 сек
Запрос - Азербайджан/Баку/Samsung/продаю - 27 сек

Уважаемые программисты !
Может кот то из Вас, живет в Азербайджане? И сталкивался с такой проблемой?
Может мускул не дружит с "азербайджанцами".... Я уже не знаю, что и думать.

Нужна помощь! Отблагодарю!
АСЯ 195377

Автор: Gluttton 28.9.2009, 17:41
Цитата(svalkasu @  28.9.2009,  12:24 Найти цитируемый пост)
Запрос - Азербайджан/Баку/Samsung/продаю - 27 сек

Нигде в подзапросе WHERE не забыли?

Если есть возможность (а главное желание) поексперементировать, то можете попробовать удалить из БД несколько таблиц и проверить, что получиться...

Автор: skyboy 28.9.2009, 18:08
http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html
объем данных(количество записей) для разных языковых версий одинаково?
насчет "просыпания таблиц":
вариант 1. после первого обращение происходит кеширование. можно вставить в запрос SQL_NO_CACHE и доказать или опровергнуть это.
вариант 2. по какой-то хитрой причине, индекс какой-то таблицы загружается в память 27 секунд, а в дальнейшем работает из памяти и потому - намного быстрее.
вариант 3. проблема именно из-за кодировки. можно попробовать explain запроса - может, для этой языковой версии просто не используются ключи(а результат запроса кешируется и потому в дальнейшем работает быстрее).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)