![]() |
|
Модераторы: skyboy, SamDark |
![]()
|
|
||
|
| Fubu_By |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Друзей: 0; Групп: 0 Регистрация: 14.2.2007 Репутация: нет Всего: 0 |
Добрый день.
Как сделать лучше? Два варианта: 1) создать одну таблицу с 500тыс записей 2)разбить таблицу на ~300 небольших таблиц, каждая таблица отдельная категория будит Если делать делать вторым способом то надо будит сделать на один запрос больше(чтобы узнать нужную категорию). Для получения нужных данных во втором варианте таблицы соединять не нужно будит Это сообщение отредактировал(а) Fubu_By - 5.2.2010, 16:34 -------------------- <удалено администрацией форума> |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 14481 Друзей: 0; Групп: 0 Регистрация: 8.4.2004 Где: Зеленоград, Москв а, Россия Репутация: 45 Всего: 273 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Fubu_By |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Друзей: 0; Групп: 0 Регистрация: 14.2.2007 Репутация: нет Всего: 0 |
аргументируете? -------------------- <удалено администрацией форума> |
|||
|
||||
| azesmcar |
|
|||
![]() Экспорт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4991 Друзей: 0; Групп: 1 Регистрация: 12.11.2004 Где: г. Ереван, Армени я Репутация: 6 Всего: 141 |
500 тысяч записей это фигня полная, о чем тут думать вообще? Поиск по нормально спроектированной таблице будет идти со скоростью света. Второй вариант это не вариант а недоразумение. Это сообщение отредактировал(а) azesmcar - 5.2.2010, 16:38 |
|||
|
||||
| Zloxa |
|
|||
|
Новичок ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1573 Друзей: 0; Групп: 0 Регистрация: 12.9.2008 Где: СССР ☭ Репутация: 14 Всего: 71 |
Отобраться по одной из 300 категорий, получится ~0,3% от всего набора.
Это достаточно низкая селективность, чтобы отбор по индексу был эффективен. Абсолютно не ясно чем вызваны ваши тревоги Это сообщение отредактировал(а) Zloxa - 5.2.2010, 16:50 -------------------- Я не живу, я слежу за собственной жизни развитием.(с) Васильев |
|||
|
||||
| Fubu_By |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Друзей: 0; Групп: 0 Регистрация: 14.2.2007 Репутация: нет Всего: 0 |
тревога вызвана тем что портал уже тормазит неплохо, при тестировании(а расчитаннывается посещаемость несколько десятков тысяч в сутки), и без таких запросов если кэшировать, выбори идут из объединения таблиц по 200тыс с несколькими тысячами, вот и пытаюсь по чуть чуть каждый запрос сделать оптимизированным, это
-------------------- <удалено администрацией форума> |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1289 Друзей: 0; Групп: 3 Регистрация: 15.1.2006 Где: Украина Репутация: 1 Всего: 51 |
если есть реальная структура и реальный запрос, то почему здесь нет ни того ни другого, а лишь абстрактный и потому лишенный смысла вопрос? )
-------------------- Все, что не анархия -- то фашизм. |
|||
|
||||
| azesmcar |
|
|||
![]() Экспорт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4991 Друзей: 0; Групп: 1 Регистрация: 12.11.2004 Где: г. Ереван, Армени я Репутация: 6 Всего: 141 |
Не там ошибку ищешь, покажи структуру таблиц (с индексами) и запрос который тормозит. Это сообщение отредактировал(а) azesmcar - 5.2.2010, 17:14 |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1289 Друзей: 0; Групп: 3 Регистрация: 15.1.2006 Где: Украина Репутация: 1 Всего: 51 |
// на всякий случай
explain этого запроса тоже добавьте -------------------- Все, что не анархия -- то фашизм. |
|||
|
||||
| Zloxa |
|
|||
|
Новичок ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1573 Друзей: 0; Групп: 0 Регистрация: 12.9.2008 Где: СССР ☭ Репутация: 14 Всего: 71 |
-------------------- Я не живу, я слежу за собственной жизни развитием.(с) Васильев |
|||
|
||||
| Fubu_By |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Друзей: 0; Групп: 0 Регистрация: 14.2.2007 Репутация: нет Всего: 0 |
Это самый трудо затратный по выполнению запрос у меня
а это запрос который я хочу разбить, таблицу offers разбить на пару сотен небольших таблиц которые буду подключатся в селект в зависимости от prefix
Это сообщение отредактировал(а) Fubu_By - 9.2.2010, 12:52 -------------------- <удалено администрацией форума> |
||||
|
|||||
| Zloxa |
|
|||
|
Новичок ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1573 Друзей: 0; Групп: 0 Регистрация: 12.9.2008 Где: СССР ☭ Репутация: 14 Всего: 71 |
Сущность offers не характеризуется атрибутом prefix. Этот атрибут характеризует сущность products. Если вы денормализуете таблицу offers, наделите ее атрибутом prefix, чего вы добъетесь? Отбор из этой таблице вы производите по id_product, который индексирован. Рассував данные из этой таблицы по признаку prefix в разные таблицы, вы ни в коем случае не уменьшите количество чтений потому что вы и так для доступа используете индекс.(должны, по идее, вы не привели плана) Единственное преимущество от этой иновации, которое я могу высосать из пальца - если вы файлы каждой из таблиц разместите на разных физических дисках, возможно вы сможете избежать ожиданий на дисковых чтениях двух конкурентных сессий, выбирающихся по продуктам с разными префиксами. Но тут же вы соединяетесь с таблицей products, доступ к которой сведет весь бенефит на нет. Если только и products разобрать на табличи и раскидать по дискам, как и offers. Вопрос не Вам, но знающим: Я слышал индексы MyISAM хранят количество уникальных значений в нем. Хрянят ли они количество записей, соответствующих каждому значению? Если это так, возможно имело бы смысл построить индекс по product.prefix, чтобы можно было бы использовать инфомрацию о количестве из это индекса. Если это не так(что наверняка), имело бы смысл сделать сбоку табличку которая содержала бы количество продуктов по категории, вести эту табличку из триггеров на продукты и запросы делать к ней а не к табилце продуктов. Благо вы все равно используете MyISAM , вам нечего боятся избытка блокировок по модификации. Это сообщение отредактировал(а) Zloxa - 9.2.2010, 17:27 -------------------- Я не живу, я слежу за собственной жизни развитием.(с) Васильев |
|||
|
||||
| Fubu_By |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Друзей: 0; Групп: 0 Регистрация: 14.2.2007 Репутация: нет Всего: 0 |
ок теперь понял, что разбивать смысла большого нету
Добавлено через 39 секунд а как оптимизировать можно первый запрос чтобы выполнялся быстрее? -------------------- <удалено администрацией форума> |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Друзей: 0; Групп: 2 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 29 |
Fubu_By, Поэтому даже сказать нечего. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Zloxa |
|
|||
|
Новичок ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1573 Друзей: 0; Групп: 0 Регистрация: 12.9.2008 Где: СССР ☭ Репутация: 14 Всего: 71 |
Fortop, зачем тебе план первого запроса? Там и так видно что фулсканы неизбежны.
Fubu_By, чем не устроило мое предложение со вспомогательной таблицей? Было ли произведено исследование на предмет наличия в индексе информации о количестве строк? Имеет ли смысл Вам отвечать в дальнейшем, если Вы не пытаетесь воспринять ответы? -------------------- Я не живу, я слежу за собственной жизни развитием.(с) Васильев |
|||
|
||||
|
||||
|
|
|
|||
|
||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Хостинг: Vingrad Hosting Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |
|