Почему MySQL Workbench выполняет запрос намного медленнее, чем мое приложение? - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть приложение, которое запускает сложное соединение, и оно возвращается через несколько секунд.Ничего страшного.Но когда я выполняю тот же самый точный запрос в Workbench 8.0.12 , это занимает больше минуты.Строка подключения идентична.

Этот пост не помогает, похоже, это другая проблема.

Мое приложение - .NET, использующее MySQL.Data dll.В прошлом я много раз использовал Workbench, но обычно с приложениями PHP.По многолетнему опыту я всегда видел, как Workbench запускает запрос примерно в то же время, что и приложение может его выполнить.

Вот мой запрос:

SELECT 
    model.Code as ModelCode, 
    prod.parts_group as PartsGroup, 
    rules.id AS ID, 
    rules.Code as ConstraintName, 
    REPLACE(REPLACE(REPLACE(REPLACE(rules.statement, '''', ''), ' me.', ''), '}and ', '} and '), '}or ', '} or ') as Statement, 
    ifnull(rules.priority,5) AS Priority, 
    model.serie_id AS SeriesID
FROM 
    toy_product_constraint as rules
    INNER JOIN toy_product as prod ON rules.product_id = prod.id
    INNER JOIN toy_product_model as model ON prod.model_id = model.id
    JOIN ModelImport mi ON model.code = mi.ModelCode
WHERE
    rules.statement <> 'TRUE'
    AND rules.market_id is null
    AND rules.statement not like 'hasSDR(true)%'
    AND rules.statement like 'SPECOPTION{00%'

Последние 3, где появляются предложениячтобы добавить 99% дополнительного времени запроса:

AND rules.market_id is null
AND rules.statement not like 'hasSDR(true)%'
AND rules.statement like 'SPECOPTION{00%'

Без этих последних 3 запрос выполняется в Workbench за 1 секунду. С последними 3 это занимает более 60 секунд в Workbench .Мы могли бы поговорить об индексах и других вещах, но настоящая загадка заключается в том, почему этот же запрос выполняется (и возвращает записи) менее чем за 3 секунды в моем приложении (я построчно прошел по коду и проверил это) иболее 60 секунд на рабочем месте ??

1 Ответ

0 голосов
/ 12 декабря 2018

Я нашел ответ: встроенный Limit to 500 rows и т. Д., Кажется, ДЕЙСТВИТЕЛЬНО медленный, чтобы выяснить, какие 500 делать.Когда я широко его открываю, он быстро бегает.Это большой набор данных.

...