тривалість та час отримання


83

Я використовую робочий стіл MySQL - Яка різниця між тривалістю та часом отримання, коли виконується запит?

Також чи є спосіб, яким я можу ввімкнути опцію мікросекунди в MySQL?


Дивна щедрість. Усі відповіді правильні, але ви просто не вірите їм? Ось і ось точно такі ж відповіді від Майка Лішке, який працює в Oracle, на форумі mysql. Досить достовірно?
Хуго Делсінг,

Відповіді:


155

Час отримання - вимірює, як довго триває передача отриманих результатів, що не має нічого спільного з виконанням запиту. Я не вважав би це варіантом налагодження / оптимізації запитів sql, оскільки час отримання залежить від мережевого підключення, яке саме по собі не має нічого спільного з оптимізацією запитів. Якщо час завантаження є вузьким місцем, то, швидше за все, є якісь проблеми з мережею.

Примітка. Час отримання може залежати від кожного виконання запиту.

Тривалість - це час, протягом якого запит повинен бути виконаний. Спробуйте мінімізувати його при оптимізації продуктивності запиту sql.

Довідково


5
Для цілей оптимізації пам’ятайте, що опція query_cache_typeповинна бути такою OFF, щоб результат не впливав на кеш. Див stackoverflow.com/questions/181894 / ...
dellasavia

6
Хоча я згоден, що тривалість - це значення, яке ви зазвичай хочете оптимізувати, оскільки воно безпосередньо пов’язане з ефективністю вашого запиту, незвично високий час отримання може також вказати на важливі логічні помилки та / або неефективність. Наприклад, ви можете передавати великі обсяги тексту з кожним запитом, який клієнт повинен кешувати. Або ви можете повернути 100 тис.
Рядків,

1
хороший момент @GrandOpener - або ви можете робити select (*), коли все, що вам дійсно потрібно - це ідентифікатор рядка.
andrew lorien

Я увімкнув профайлер у MySQL та запустив запит. Потім я вивчив вихідні дані Workbench та профілювача. Тривалість, про яку повідомляє Workbench, становить 0,373, тоді як загальна тривалість від профілювача ледь досягає 0,01. Чи означає це, що тривалість виводу у Workbench - це НЕ загальна кількість часу, витраченого MySQL на виконання запиту?
Meglio

Здається, це не правильно. У мене є два запити, які повертають однакові рядки (15300), але їх статистика завжди відрізняється. один займає 14,443 с Тривалість / 1111,810 с Витягнути, а інший 443,986 с Тривалість / 0,0089 с Вибирати кожен раз. чому так?
Шахід

15

Тривалість показує час, необхідний для виконання запиту та отримання, - це час, необхідний для читання набору результатів (отримання даних)

Я не впевнений у мікросекундному варіанті. Якщо це стосується оптимізації, пам’ятайте - «передчасна оптимізація - корінь усього зла»


0

Щодо мікросекунди, спробуйте увімкнути її в меню «Налаштування», і я також раніше отримував запитання про тривалість та час отримання, тепер, схоже, отримую відповідь, що тривалість - це час виконання запиту, а вибір отримує результат і надішліть їх куди завгодно. Наприклад, я отримую запит, тривалість якого 0,078, але для повернення даних на мій веб-сайт знадобиться 60 секунд.


0

Час виконання - це час, витрачений на підготовку запиту та запуск запиту І час отримання - це час, витрачений на втягування результатів рядка

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.