За последние 24 часа нас посетили 62764 программиста и 1678 роботов. Сейчас ищет 971 программист ...

Индексы

Тема в разделе "MySQL", создана пользователем artem-Kuzmin, 22 окт 2012.

  1. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Людии привет).
    Есть у меня таблица к примеру хранит цвет, размер, бренд.
    Я делаю выборки иногда по бренду, иногда по цвету, иногда по размеру, а иногда по любой комбинации этих свойств.
    Так вот чтоб быстрее работало как лучше..
    У меня сейчас для каждого поля отдельного есть индекс.
    Но так как делаю выборки порой и комбинации этих параметров выиграю ли я от того что создам комбинированные ключи?
    )))))))))))))
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а что запросы медленно отрабатывают?
    приведите пример
     
  3. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Ну не то чтобы слишком медленно но хотелоь бы чтоб летало прям..
    Записей в бд примерно тысяч 30-40...
    Пример запросов отрабатывающих
    SELECT DISTINCT `color` FROM `catalog_parameters` WHERE `brand` IN(3,65,7) AND price BETWEEN 100 AND 20000;

    SELECT DISTINCT `brand` FROM `catalog_param` WHERE `color` IN (1,5,7,9) AND price BETWEEN 100 AND 20000;

    'SELECT MAX(`price`) FROM `catalog_parameters` WHERE IN (1,5,7,9) AND `brand` IN(3,65,7)

    'SELECT MAX(`price`) FROM `catalog_parameters` WHERE IN (1,5,7,9) AND `brand` IN(3,65,7)

    SELECT DISTINCT `pid` FROM catalog_parameters WHERE `color` IN (1,5,7,9) AND `brand` IN(3,65,7) AND price BETWEEN 100 AND 20000;

    SELECT COUNT(DISTINCT `pid` ) /' . $this->number . ' FROM `catalog_param` WHERE `color` IN (1,5,7,9) AND `brand` IN(3,65,7) AND price BETWEEN 100 AND 20000;

    SELECT * FROM `catalog` WHERE id IN (Список пидов из прошлого запроса)...

    Суть всего этого выбираем все характеристики по очереди чтоб использовать в фильтрах....Под цоней достаем из каталога те продукт иды которые нам подходят для каждого товара может бть несколько записей поэтому DISTINCT (чтобы каждый товар мог иметь произвольное кол-во цветов размеров количеств)

    То есть красный => xl => 200штук и цена 200
    зеленый => xl => 19штук и цена 250р
    Это у одного товара..
    А под цонец с получеными пидами выбираем из основной таблицы такие параметры как имя описание товаара
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а что цена (price) дублируется в в таблицах catalog_param и catalog_parameters ?
    и зачем вообще две таблицы с почти одинаковыми названиями?

    мин. и макс. цену можно вытаскивать в одном запросе
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    и сколько они по времени выполняются?
     
  6. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Нет дублей нету все параметры в catalog_parameters а catalog_param это так...
    Хм замеры пока не делал сейчас замерю.....
    Замерил 0.2 - 0.3 секунды не слабо хотелось бы .02 хотя бы
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    быстрее не будет при таком количестве записей и я подозреваю слабое железо. Не надо сильно париться. То что сервер 0,2 секунды тратит на запрос, он всё равно умудрится на круг выдать штук 25 страниц в секунду.
     
  8. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Замтеил протестил прошлую версию сайта где все было в одной таблице где был всего одини запрос достать товары по очереди не было ни цветов ни размеров что время генерации ни чуть не меньше а даже порой и больше...
    там 0.3-0.4
    и я подозреваю слабое желез -- хецнер там) с 32 гигами оператики который ...
    Ну в принципе да) плюс у меня первый запрос так отработает а далее лоадер включается и на аяксе выборки все делаются по цветам и размерам как на асос.ком и стуктура сайта как асос.ком вот там помотрев можно понять уже почему сделал разделение на две таблицы....
    Хммм ааа если... у меня xcache сейчас стоит если еще попробовать memcahed?? прирост не даст
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Сколько время генерации страницы?
     
  10. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    0.126220 , 0.095700 , 0.200824 - это уже в кокретной категории
    0.333348 , 0.308647 , 0.356315 - это если в общем где в перемешку все все товары...
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    на все запросы на странице сколько тратится?

    сколько страниц тянет сервак? померяй siege утилитой
     
  12. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Именно запросы не мерил проблематично будет каждый запрос померить через микротайм(труе) сложить их)) норм если бы через функцию обертку были запросы все..
    Нооо время полной генерации страницы 0.126220 , 0.095700 , 0.200824 - это уже в кокретной категории через запятую 3 результата
    посещаолка 2400(25000страниц в сутки)
    не пользовал щас буду мерить)

    Добавлено спустя 14 минут 6 секунд:
    Хм а не пользовал ab (Apache HTTP server benchmarking tool)? С апачем идет разу вродь как
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а не пользовал. я вобще на нгинксе сижу вечно.

    ты чего намерял там ченить? =)
     
  14. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Провел тесты вот какие результаты)
    Тесты при количестве запросов по 50 с задержкой в 1 сек.

    10 сессий
    Регрессивный режим

    Transactions: 500 hits
    Availability: 100.00 %
    Elapsed time: 36.01 secs
    Data transferred: 20.46 MB
    Response time: 0.12 secs
    Transaction rate: 13.89 trans/sec
    Throughput: 0.57 MB/sec
    Concurrency: 1.62
    Successful transactions: 500
    Failed transactions: 0
    Longest transaction: 0.38
    Shortest transaction: 0.03


    10 сессий
    Имитация интернета

    Transactions: 500 hits
    Availability: 100.00 %
    Elapsed time: 34.30 secs
    Data transferred: 19.39 MB
    Response time: 0.12 secs
    Transaction rate: 14.58 trans/sec
    Throughput: 0.57 MB/sec
    Concurrency: 1.70
    Successful transactions: 500
    Failed transactions: 0
    Longest transaction: 0.39
    Shortest transaction: 0.02


    200сессий
    Имитация интернета

    Transactions: 10000 hits
    Availability: 100.00 %
    Elapsed time: 253.50 secs
    Data transferred: 378.41 MB
    Response time: 4.28 secs
    Transaction rate: 39.45 trans/sec
    Throughput: 1.49 MB/sec
    Concurrency: 168.88
    Successful transactions: 10000
    Failed transactions: 0
    Longest transaction: 18.91
    Shortest transaction: 0.04

    Добавлено спустя 1 минуту 39 секунд:
    Да урлы дал списком на общую категорию на конкретные категории и на товары..
    10 на категории 5 на товары
     
  15. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    работает кстати все быстро не заметно))..
    А вся моя проблема была не обратил внимание в рендеринге страницы у меня куча добавилась чекбоксов брендов их там более пары сотен к ним лайблы и это снизило сокорсть обработки в моем ноуте)..
    Плюс это еще работает через стилизованный скроллер..
    У которого не большая высота вот и нагрузило все броузер поменяю чеки на ссылки и все залетает))
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    можно вынести часть функционала в AJAX, чтобы не грузить ненужные части и хтмл элементы.

    YSlow поможет тебе понять где чо.

    дай линку на магаз
     
  17. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Они по сути все нужны ноо кстати вот мысль)) то что надо скорее всего брэнды будут по началу закрыты они все равно ни всем людям нужны это самый левый фильтр а при шелчке уже подгружать...
    Обязательно дам)) только чуть позже сейчас его допиливаю не подобающим образом выглядит
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    всегда-всегда? на каждой-прикаждой странице? или только когда юзер их захочет? или не все?
     
  19. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Неее там немного другой случай) в зависимости от того какая категория показываются те брэнды лмишь которые используются..
    Но вот о том что их вынести в аякс и поначалу их нет задумался...
    Пока суть работы фильтров можно увидеть здесь http://www.asos.com/Women/Bags-Purses/Cat/pgecategory.aspx?cid=8730
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ну там их совсем немного
     
  21. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    У них да поменьше у нах просто еще нет разделов женское мужское там баннеры и проча реклама у нас есть поэтому побольше и на сайте не только такие товары поэтому опять таки..
    Ну чуть позже покажу завершаю сейчас))
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    главное чтобы не получилось так как у 3dnews.ru
     
  23. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Больше всего такое не люблю) когда рябит от инфы в глазах а от кол-ва их баннеров у меня ноут тупит).
    Нее еще чуть и 2500человек увидят новую версию магазина пока лазят по старому я на поддомене доделываю)
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Попробуй повозюкать вверх-вниз по ссылкам в списке новостей =)
     
  25. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Гык реально жгут ребята)) хотя это ж динозавр..
    Кстати помню время на этом форуме писал о фрилансе создание хотелось.
    Где ты сказал о том что надо продумывать).. На тот момент забил а мысль по сути и впрмь норм была просто не потянул бы как в бюджете на тот момент так и с проф точкри зрения.
    Тогда они убрали возможность добавлять отзывы и я понял что скоро станет и это стало теперь там работа через сбр все валят оттуда а валить особо не куда)..
    Хабрахабры фрилансим вроде засуетились сразу делать