Деньги, как известно, имеют различные функции. Одной из них является непрестанное движение денег в обращении, обслуживание процесса обращения. Без выполнения деньгами этой функции торговля была бы невозможна.

Ўстаноўка MySQL 5.6 аптымізатар правільна для OXID Enterprise • OXIDforge

Для таго, каб сказаць загадзя: Інтэрнэт-крама Enterprise Edition 5 Для таго, каб сказаць загадзя: Інтэрнэт-крама Enterprise Edition 5.2.x працуе амаль выдатна з MySql 5.6, але ёсць трохі адваротны MySQL Bug ( # 79203 ), Што лепш быць у курсе. Інтэрнэт-крама Professional і Community Edition не ўплываюць.

Мы ўпершыню сутыкнуліся няўзгодненасці з ужываннем зніжкі пры запуску Інтэрнэт-крамы Enterprise Edition 5.2.6 на Debian GNU / Linux 7.8 (астматычны) з PHP 5.6.15 і MySQL 5.6.25.

прыклад:

  • стварыць Інтэрнэт-крама Enterprise Edition 5.2.x
  • Стварэнне тэставага карыстальніка з правамі «карыстач»
  • у краме адмінку, стварыць дзве новых групы карыстальнікаў: карыстальнікі групы А і групы карыстальнікаў B
  • у краме адмінку, стварыць тры розных скідак, пачынаючы ад колькасці 1
  • 10% на вяршыні ўсёй кошыка для subshop 1 (так, гэта адмоўная зніжка, але гэта толькі прыклад)
  • 5% зніжка для ўсіх карыстальнікаў у групе карыстальнікаў A (прысвоіць зніжку групы карыстальнікаў А)
  • 20% зніжка для ўсіх карыстальнікаў у групе карыстальнікаў B (прысвоіць зніжку групы карыстальнікаў B)

Скажам, наш тэставы карыстальнік належыць да карыстацкай групе А і крамах у subshop 1. У гэтым выпадку ён павінен атрымаць 10% нацэнку за subshop і 5% ад яго групы карыстальнікаў.

У выніку, у пярэдняй частцы былі альбо ўсе тры скідкі або ні прымяняць, тры з іх, калі
у той жа час, пасля ўваходу ў сістэму з правамі адміністратара ў іншы ўкладцы і выбраць агляд зніжак. Гэта азначае, што зніжкі правільна не прымяняюцца ў нашым выпадку. З той жа ўсталёўкай, але MySQL 5.5 усталяваны, усе зніжкі прымяняюцца правільна.

Падобна на тое, што MySQL 5.6 аптымізатар мае праблемы з пэўным тыпам запыту, калi думка
ўдзельнічаюць. Клас oxDiscountList выконвае запыт структуры

выберыце viewtable.oxid з viewtable дзе (абярыце, калі (EXISTS ( 'пошук адносіны табліцы плюс адпаведную табліцу для любых супадальных радкоў, якія змяшчаюць viewtable.oxid. запіс у звязанай табліцы павінны існаваць.), EXISTS ( «зрабіць падрабязны пошук па суадносінах табліцы для радкоў ўмовы ўзгаднення, якія змяшчаюць viewtable.oxid «), 1), калі && (EXISTS (" пошук іншага адносіны табліцы плюс іншыя звязаныя табліцы для любых супадальных радкоў, якія змяшчаюць viewtable.oxid. запіс у іншай адпаведнай табліцы павінны існаваць. "), EXISTS (» зрабіць дэталь пошук па іншай табліцы суадносін для радкі, адпаведныя ўмовы, якія змяшчаюць viewtable.oxid '), 1) ... і гэтак далей)

на выгляд, створаны як

CREATE VIEW ... `viewtable` AS выберите`` table`.`OXID` AS OXID`, ..., з ( `` table` далучыцца relations`` t2s` на (( `t2s`.`OXMAPOBJECTID` =` table`.`OXMAPID`))), дзе ( `t2s`.`OXSHOPID` = 1)

Калі мы прымушаем асноўнае выкарыстанне табліцы, выкарыстоўваць ўяўленне не створанае з аб'яднаннем або проста дадаць у «заказ на» на запыт, набор вынікаў з'яўляецца правільным. Праз нейкі - то капацца ў ёй, мы знайшлі вінаватага , каб быць месцам для «block_nested_loop» ,. калі гэта, мы можам атрымаць няправільныя наборы вынікаў. У MySQL 5.5, усё добра.

Ёсць яшчэ некалькі месцаў у OXID Інтэрнэт-крама, якія выкарыстоўваюць падобную структуру запыту ў класе oxDiscountList:

  • oxActionList
  • oxDeliveryList
  • oxDeliverySetList

Але яны выдатна працуюць з MySQL 5.6 з - альбо выбару з структураванага па- розны выгляд табліцы або таму , што яны выкарыстоўваюць запыт з дададзеным «парадкам».

Падводзячы вынік: да таго часу, пакуль мы не выкарыстоўваем ніякіх скідак для Інтэрнэт-крамы Enterprise Edition 5.2.x пад MySQL 5.6.x, усё добра. Калі зніжкі выкарыстоўваюцца, налады аптымізатар MySQL для block_nested_loop павінны быць усталяваны ў становішчы «выключаны» , каб быць на бяспечнай баку.