freelancer Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 тема подумать/обсудить. сейчас двиг в стоке на 1 страницу товара выполняет ~100 запросов, 99% из которых повторяются для каждого товара я думаю почему бы не сделать так что бы двиг выполнял ровно 1 запрос, который тащит инфу только о конкретном товаре. прошу в этой теме не обсуждать page cache'и, тут суть в другом Надіслати Поділитися на інших сайтах More sharing options... splka Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 28 минут назад, nikifalex сказал: нужен пример. непонятно про что речь. что будет в этом одном запросе? Запрос продукта Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 1 час назад, freelancer сказал: почему бы не сделать так что бы двиг выполнял ровно 1 запрос Зачем это извращение? База должна работать и отрабатывать свое, нужен баланс количества/сложность, один запрос может положить базу, 1000 запросов могут отработать за 0.5 сек. Чтобы убрать повторы одних и тех же запросов можно обойтись чем-то таким: public function query($sql) { $cached = strtolower(substr(ltrim($sql), 0, 6)) == 'select'; // not cached select from a variable if ($cached) { $cached = (false !== stripos($sql, 'from')); } if ($cached) { $key = md5($sql); if (isset($this->cache[$key])) { $query = $this->cache[$key]; } else { $query = $this->driver->query($sql); $this->cache[$key] = $query; } } else { $query = $this->driver->query($sql); } return $query; } 1 час назад, freelancer сказал: прошу в этой теме не обсуждать page cache'и, тут суть в другом Ну, если без кэшей, тогда только html5 history + ajax загрузка конкретного блока, того же контента, но и тогда одним запросом не обойтись. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 березня 2019 Автор Share Опубліковано: 12 березня 2019 есть порядка 100 доменов на одном инстансе и у каждого порядка 100 поддоменов бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 Нормальная мысль у frelancer, только не применима к опынкарпу, в силу изначальной реляционной модели. Из того что я понял, речь идёт о преобразовании хранилища в объектную nosql структуру и дальнейшую работу с товаром как с готовой коллекцией. Можно в таком же ключе рассматривать промежуточное решение и остаться в рамках все той же mysql, грн использовать json коллекцию вместо всех этих таблиц special, review и так далее. И возможно это здравая мысль была с точки зрения оптимизации работы вывода товарных предложений. Но у нас очень много базовых сущностей и достаточно сложных связей между ними. И при таком варианте nosql формат при попытке сделать представление чуть иного вида, чем товар, сразу превратится в ад. Использовать оба подхода это неоправданная избыточность. Ну и не стоит забывать про персистеность, крути верти, а информация хранится про деньги о деньгах. И все финансовые институты почему то предпочитают oracle или ms sql а не многодб или эластик. Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 10 hours ago, freelancer said: почему бы не сделать так что бы двиг выполнял ровно 1 запрос, который тащит инфу только о конкретном товаре. прошу в этой теме не обсуждать page cache'и, тут суть в другом Однако, по-прежнему нужно как-то выводить еще и хидеры\футеры, хлебные менюшки с корзинами и прочую вроде как повторяющуюся, но, все-таки, динамическую информацию. Пофантазируем, откуда их можно брать, если не из базы. Ок, про query_cache со стороны мускуля мы забыли. Хотя можно точечно развесить на конкретные запросы при type = ondemand.. Так же как и про кеэширование страницы целиком. Забыли про кэширование непосредственно результатов запросов в то или иное хранилище, будь то файлик, редис, или мемкеш. Всякие server side include'ы ? Инициализировать и хранить в глобальных переменных? )))) А может, а может... аякс? Даешь, что бы менялось только то, что должно изменится. Главное сео не прибить случайно. Последний вариант с аяксом, а? Этакий лэзи-лоад на весь движок 10 hours ago, SooR said: База должна работать и отрабатывать свое, нужен баланс количества/сложность, один запрос может положить базу, 1000 запросов могут отработать за 0.5 сек. Пожалуй, с этим можно только согласиться. Вот, к примеру: 100, да бог с ним, пусть будет 200 запросов к базе на страницу. Вы писали, что на одном сервере БД крутится 100доменов. Допустим, (1000 уников в сутки с домена * 10 страниц глубины просмотра с уника * 100доменов * 200 запросов к базе со страницы) / 24 часа / 60 минут / 60 секунд ~~~ 2300qps. Плюс еще боты - пусть столько же. Пусть будет почти придуманные 5kqps. Не ентерпрайз ведь даже или прям хайлоад. Да, круто. Да, от таких задач у большинства предлагаемых vps виртуальные ядра перегреются. Но это не проблема, согласитесь. 9 hours ago, freelancer said: бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Если прям не хотите кэшировать, то упрощайте. Делайте их быстрее, легче, что бы снизить нагрузку. Статикой замените, если хотите ))) Слоулог тут советовать бессмысленно. performance_schema = on и explain для отладки: по самым медленным, по самым частым, по тем, что делают фуллскан, по тем, что вешают долгие блокировки, по тем, что свапятся на диск... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам уменьшение нагрузки на бд Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
splka Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 28 минут назад, nikifalex сказал: нужен пример. непонятно про что речь. что будет в этом одном запросе? Запрос продукта Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 1 час назад, freelancer сказал: почему бы не сделать так что бы двиг выполнял ровно 1 запрос Зачем это извращение? База должна работать и отрабатывать свое, нужен баланс количества/сложность, один запрос может положить базу, 1000 запросов могут отработать за 0.5 сек. Чтобы убрать повторы одних и тех же запросов можно обойтись чем-то таким: public function query($sql) { $cached = strtolower(substr(ltrim($sql), 0, 6)) == 'select'; // not cached select from a variable if ($cached) { $cached = (false !== stripos($sql, 'from')); } if ($cached) { $key = md5($sql); if (isset($this->cache[$key])) { $query = $this->cache[$key]; } else { $query = $this->driver->query($sql); $this->cache[$key] = $query; } } else { $query = $this->driver->query($sql); } return $query; } 1 час назад, freelancer сказал: прошу в этой теме не обсуждать page cache'и, тут суть в другом Ну, если без кэшей, тогда только html5 history + ajax загрузка конкретного блока, того же контента, но и тогда одним запросом не обойтись. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 березня 2019 Автор Share Опубліковано: 12 березня 2019 есть порядка 100 доменов на одном инстансе и у каждого порядка 100 поддоменов бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 Нормальная мысль у frelancer, только не применима к опынкарпу, в силу изначальной реляционной модели. Из того что я понял, речь идёт о преобразовании хранилища в объектную nosql структуру и дальнейшую работу с товаром как с готовой коллекцией. Можно в таком же ключе рассматривать промежуточное решение и остаться в рамках все той же mysql, грн использовать json коллекцию вместо всех этих таблиц special, review и так далее. И возможно это здравая мысль была с точки зрения оптимизации работы вывода товарных предложений. Но у нас очень много базовых сущностей и достаточно сложных связей между ними. И при таком варианте nosql формат при попытке сделать представление чуть иного вида, чем товар, сразу превратится в ад. Использовать оба подхода это неоправданная избыточность. Ну и не стоит забывать про персистеность, крути верти, а информация хранится про деньги о деньгах. И все финансовые институты почему то предпочитают oracle или ms sql а не многодб или эластик. Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 10 hours ago, freelancer said: почему бы не сделать так что бы двиг выполнял ровно 1 запрос, который тащит инфу только о конкретном товаре. прошу в этой теме не обсуждать page cache'и, тут суть в другом Однако, по-прежнему нужно как-то выводить еще и хидеры\футеры, хлебные менюшки с корзинами и прочую вроде как повторяющуюся, но, все-таки, динамическую информацию. Пофантазируем, откуда их можно брать, если не из базы. Ок, про query_cache со стороны мускуля мы забыли. Хотя можно точечно развесить на конкретные запросы при type = ondemand.. Так же как и про кеэширование страницы целиком. Забыли про кэширование непосредственно результатов запросов в то или иное хранилище, будь то файлик, редис, или мемкеш. Всякие server side include'ы ? Инициализировать и хранить в глобальных переменных? )))) А может, а может... аякс? Даешь, что бы менялось только то, что должно изменится. Главное сео не прибить случайно. Последний вариант с аяксом, а? Этакий лэзи-лоад на весь движок 10 hours ago, SooR said: База должна работать и отрабатывать свое, нужен баланс количества/сложность, один запрос может положить базу, 1000 запросов могут отработать за 0.5 сек. Пожалуй, с этим можно только согласиться. Вот, к примеру: 100, да бог с ним, пусть будет 200 запросов к базе на страницу. Вы писали, что на одном сервере БД крутится 100доменов. Допустим, (1000 уников в сутки с домена * 10 страниц глубины просмотра с уника * 100доменов * 200 запросов к базе со страницы) / 24 часа / 60 минут / 60 секунд ~~~ 2300qps. Плюс еще боты - пусть столько же. Пусть будет почти придуманные 5kqps. Не ентерпрайз ведь даже или прям хайлоад. Да, круто. Да, от таких задач у большинства предлагаемых vps виртуальные ядра перегреются. Но это не проблема, согласитесь. 9 hours ago, freelancer said: бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Если прям не хотите кэшировать, то упрощайте. Делайте их быстрее, легче, что бы снизить нагрузку. Статикой замените, если хотите ))) Слоулог тут советовать бессмысленно. performance_schema = on и explain для отладки: по самым медленным, по самым частым, по тем, что делают фуллскан, по тем, что вешают долгие блокировки, по тем, что свапятся на диск... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам уменьшение нагрузки на бд Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
SooR Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 1 час назад, freelancer сказал: почему бы не сделать так что бы двиг выполнял ровно 1 запрос Зачем это извращение? База должна работать и отрабатывать свое, нужен баланс количества/сложность, один запрос может положить базу, 1000 запросов могут отработать за 0.5 сек. Чтобы убрать повторы одних и тех же запросов можно обойтись чем-то таким: public function query($sql) { $cached = strtolower(substr(ltrim($sql), 0, 6)) == 'select'; // not cached select from a variable if ($cached) { $cached = (false !== stripos($sql, 'from')); } if ($cached) { $key = md5($sql); if (isset($this->cache[$key])) { $query = $this->cache[$key]; } else { $query = $this->driver->query($sql); $this->cache[$key] = $query; } } else { $query = $this->driver->query($sql); } return $query; } 1 час назад, freelancer сказал: прошу в этой теме не обсуждать page cache'и, тут суть в другом Ну, если без кэшей, тогда только html5 history + ajax загрузка конкретного блока, того же контента, но и тогда одним запросом не обойтись. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 12 березня 2019 Автор Share Опубліковано: 12 березня 2019 есть порядка 100 доменов на одном инстансе и у каждого порядка 100 поддоменов бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 Нормальная мысль у frelancer, только не применима к опынкарпу, в силу изначальной реляционной модели. Из того что я понял, речь идёт о преобразовании хранилища в объектную nosql структуру и дальнейшую работу с товаром как с готовой коллекцией. Можно в таком же ключе рассматривать промежуточное решение и остаться в рамках все той же mysql, грн использовать json коллекцию вместо всех этих таблиц special, review и так далее. И возможно это здравая мысль была с точки зрения оптимизации работы вывода товарных предложений. Но у нас очень много базовых сущностей и достаточно сложных связей между ними. И при таком варианте nosql формат при попытке сделать представление чуть иного вида, чем товар, сразу превратится в ад. Использовать оба подхода это неоправданная избыточность. Ну и не стоит забывать про персистеность, крути верти, а информация хранится про деньги о деньгах. И все финансовые институты почему то предпочитают oracle или ms sql а не многодб или эластик. Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 10 hours ago, freelancer said: почему бы не сделать так что бы двиг выполнял ровно 1 запрос, который тащит инфу только о конкретном товаре. прошу в этой теме не обсуждать page cache'и, тут суть в другом Однако, по-прежнему нужно как-то выводить еще и хидеры\футеры, хлебные менюшки с корзинами и прочую вроде как повторяющуюся, но, все-таки, динамическую информацию. Пофантазируем, откуда их можно брать, если не из базы. Ок, про query_cache со стороны мускуля мы забыли. Хотя можно точечно развесить на конкретные запросы при type = ondemand.. Так же как и про кеэширование страницы целиком. Забыли про кэширование непосредственно результатов запросов в то или иное хранилище, будь то файлик, редис, или мемкеш. Всякие server side include'ы ? Инициализировать и хранить в глобальных переменных? )))) А может, а может... аякс? Даешь, что бы менялось только то, что должно изменится. Главное сео не прибить случайно. Последний вариант с аяксом, а? Этакий лэзи-лоад на весь движок 10 hours ago, SooR said: База должна работать и отрабатывать свое, нужен баланс количества/сложность, один запрос может положить базу, 1000 запросов могут отработать за 0.5 сек. Пожалуй, с этим можно только согласиться. Вот, к примеру: 100, да бог с ним, пусть будет 200 запросов к базе на страницу. Вы писали, что на одном сервере БД крутится 100доменов. Допустим, (1000 уников в сутки с домена * 10 страниц глубины просмотра с уника * 100доменов * 200 запросов к базе со страницы) / 24 часа / 60 минут / 60 секунд ~~~ 2300qps. Плюс еще боты - пусть столько же. Пусть будет почти придуманные 5kqps. Не ентерпрайз ведь даже или прям хайлоад. Да, круто. Да, от таких задач у большинства предлагаемых vps виртуальные ядра перегреются. Но это не проблема, согласитесь. 9 hours ago, freelancer said: бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Если прям не хотите кэшировать, то упрощайте. Делайте их быстрее, легче, что бы снизить нагрузку. Статикой замените, если хотите ))) Слоулог тут советовать бессмысленно. performance_schema = on и explain для отладки: по самым медленным, по самым частым, по тем, что делают фуллскан, по тем, что вешают долгие блокировки, по тем, что свапятся на диск... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам уменьшение нагрузки на бд
freelancer Опубліковано: 12 березня 2019 Автор Share Опубліковано: 12 березня 2019 есть порядка 100 доменов на одном инстансе и у каждого порядка 100 поддоменов бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 Нормальная мысль у frelancer, только не применима к опынкарпу, в силу изначальной реляционной модели. Из того что я понял, речь идёт о преобразовании хранилища в объектную nosql структуру и дальнейшую работу с товаром как с готовой коллекцией. Можно в таком же ключе рассматривать промежуточное решение и остаться в рамках все той же mysql, грн использовать json коллекцию вместо всех этих таблиц special, review и так далее. И возможно это здравая мысль была с точки зрения оптимизации работы вывода товарных предложений. Но у нас очень много базовых сущностей и достаточно сложных связей между ними. И при таком варианте nosql формат при попытке сделать представление чуть иного вида, чем товар, сразу превратится в ад. Использовать оба подхода это неоправданная избыточность. Ну и не стоит забывать про персистеность, крути верти, а информация хранится про деньги о деньгах. И все финансовые институты почему то предпочитают oracle или ms sql а не многодб или эластик. Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 10 hours ago, freelancer said: почему бы не сделать так что бы двиг выполнял ровно 1 запрос, который тащит инфу только о конкретном товаре. прошу в этой теме не обсуждать page cache'и, тут суть в другом Однако, по-прежнему нужно как-то выводить еще и хидеры\футеры, хлебные менюшки с корзинами и прочую вроде как повторяющуюся, но, все-таки, динамическую информацию. Пофантазируем, откуда их можно брать, если не из базы. Ок, про query_cache со стороны мускуля мы забыли. Хотя можно точечно развесить на конкретные запросы при type = ondemand.. Так же как и про кеэширование страницы целиком. Забыли про кэширование непосредственно результатов запросов в то или иное хранилище, будь то файлик, редис, или мемкеш. Всякие server side include'ы ? Инициализировать и хранить в глобальных переменных? )))) А может, а может... аякс? Даешь, что бы менялось только то, что должно изменится. Главное сео не прибить случайно. Последний вариант с аяксом, а? Этакий лэзи-лоад на весь движок 10 hours ago, SooR said: База должна работать и отрабатывать свое, нужен баланс количества/сложность, один запрос может положить базу, 1000 запросов могут отработать за 0.5 сек. Пожалуй, с этим можно только согласиться. Вот, к примеру: 100, да бог с ним, пусть будет 200 запросов к базе на страницу. Вы писали, что на одном сервере БД крутится 100доменов. Допустим, (1000 уников в сутки с домена * 10 страниц глубины просмотра с уника * 100доменов * 200 запросов к базе со страницы) / 24 часа / 60 минут / 60 секунд ~~~ 2300qps. Плюс еще боты - пусть столько же. Пусть будет почти придуманные 5kqps. Не ентерпрайз ведь даже или прям хайлоад. Да, круто. Да, от таких задач у большинства предлагаемых vps виртуальные ядра перегреются. Но это не проблема, согласитесь. 9 hours ago, freelancer said: бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Если прям не хотите кэшировать, то упрощайте. Делайте их быстрее, легче, что бы снизить нагрузку. Статикой замените, если хотите ))) Слоулог тут советовать бессмысленно. performance_schema = on и explain для отладки: по самым медленным, по самым частым, по тем, что делают фуллскан, по тем, что вешают долгие блокировки, по тем, что свапятся на диск... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Yoda Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 Нормальная мысль у frelancer, только не применима к опынкарпу, в силу изначальной реляционной модели. Из того что я понял, речь идёт о преобразовании хранилища в объектную nosql структуру и дальнейшую работу с товаром как с готовой коллекцией. Можно в таком же ключе рассматривать промежуточное решение и остаться в рамках все той же mysql, грн использовать json коллекцию вместо всех этих таблиц special, review и так далее. И возможно это здравая мысль была с точки зрения оптимизации работы вывода товарных предложений. Но у нас очень много базовых сущностей и достаточно сложных связей между ними. И при таком варианте nosql формат при попытке сделать представление чуть иного вида, чем товар, сразу превратится в ад. Использовать оба подхода это неоправданная избыточность. Ну и не стоит забывать про персистеность, крути верти, а информация хранится про деньги о деньгах. И все финансовые институты почему то предпочитают oracle или ms sql а не многодб или эластик. Надіслати Поділитися на інших сайтах More sharing options...
100napb Опубліковано: 12 березня 2019 Share Опубліковано: 12 березня 2019 10 hours ago, freelancer said: почему бы не сделать так что бы двиг выполнял ровно 1 запрос, который тащит инфу только о конкретном товаре. прошу в этой теме не обсуждать page cache'и, тут суть в другом Однако, по-прежнему нужно как-то выводить еще и хидеры\футеры, хлебные менюшки с корзинами и прочую вроде как повторяющуюся, но, все-таки, динамическую информацию. Пофантазируем, откуда их можно брать, если не из базы. Ок, про query_cache со стороны мускуля мы забыли. Хотя можно точечно развесить на конкретные запросы при type = ondemand.. Так же как и про кеэширование страницы целиком. Забыли про кэширование непосредственно результатов запросов в то или иное хранилище, будь то файлик, редис, или мемкеш. Всякие server side include'ы ? Инициализировать и хранить в глобальных переменных? )))) А может, а может... аякс? Даешь, что бы менялось только то, что должно изменится. Главное сео не прибить случайно. Последний вариант с аяксом, а? Этакий лэзи-лоад на весь движок 10 hours ago, SooR said: База должна работать и отрабатывать свое, нужен баланс количества/сложность, один запрос может положить базу, 1000 запросов могут отработать за 0.5 сек. Пожалуй, с этим можно только согласиться. Вот, к примеру: 100, да бог с ним, пусть будет 200 запросов к базе на страницу. Вы писали, что на одном сервере БД крутится 100доменов. Допустим, (1000 уников в сутки с домена * 10 страниц глубины просмотра с уника * 100доменов * 200 запросов к базе со страницы) / 24 часа / 60 минут / 60 секунд ~~~ 2300qps. Плюс еще боты - пусть столько же. Пусть будет почти придуманные 5kqps. Не ентерпрайз ведь даже или прям хайлоад. Да, круто. Да, от таких задач у большинства предлагаемых vps виртуальные ядра перегреются. Но это не проблема, согласитесь. 9 hours ago, freelancer said: бд сильно нагружается большим кол-вом быстрых запросов. суть проблемы именно в кол-ве Если прям не хотите кэшировать, то упрощайте. Делайте их быстрее, легче, что бы снизить нагрузку. Статикой замените, если хотите ))) Слоулог тут советовать бессмысленно. performance_schema = on и explain для отладки: по самым медленным, по самым частым, по тем, что делают фуллскан, по тем, что вешают долгие блокировки, по тем, что свапятся на диск... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts