Loading...
MySQL 9.5 Reference Manual 9.5의 14.22 Performance Schema Functions의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MySQL에는 Performance Schema 데이터를 포맷하거나 조회하는 내장 SQL 함수가 포함되어 있으며, 이는 해당하는 sys 스키마 저장 함수의 대체로 사용할 수 있습니다.
내장 함수는 어떤 스키마에서든 한정자 없이 호출할 수 있지만,
sys 함수는 sys. 스키마 한정자를 사용하거나
sys가 현재 스키마여야 합니다.
Table 14.32 Performance Schema Functions
| Name | Description |
|---|---|
FORMAT_BYTES() | 바이트 개수를 단위가 포함된 값으로 변환 |
FORMAT_PICO_TIME() | 피코초 단위의 시간을 단위가 포함된 값으로 변환 |
PS_CURRENT_THREAD_ID() | 현재 스레드에 대한 Performance Schema 스레드 ID |
PS_THREAD_ID() | 지정된 스레드에 대한 Performance Schema 스레드 ID |
내장 함수는 해당하는
sys 함수를 대체하며, sys 함수는 사용 중단(deprecated) 상태입니다.
향후 버전의 MySQL에서 제거될 수 있습니다.
sys 함수를 사용하는 애플리케이션은 내장 함수를 사용하도록 조정해야 하며,
이때 sys 함수와 내장 함수 간의 약간의 차이를 고려해야 합니다.
이러한 차이에 대한 자세한 내용은 이 섹션의 함수 설명을 참조하십시오.
숫자 바이트 개수가 주어지면 이를 사람이 읽을 수 있는 형식으로 변환하여,
값과 단위 indicator로 구성된 문자열을 반환합니다.
이 문자열에는 소수점 이하 2자리까지 반올림된 바이트 수와 최소 3자리의 유효 자릿수가 포함됩니다.
1024바이트보다 작은 수는 정수로 표현되며 반올림되지 않습니다.
_count_가 NULL이면 NULL을 반환합니다.
단위 indicator는 다음 표와 같이 바이트 개수 인자의 크기에 따라 달라집니다.
| Argument Value | Result Units | Result Units Indicator |
|---|---|---|
| Up to 1023 | bytes | bytes |
| Up to 10242 − 1 | kibibytes | KiB |
| Up to 10243 − 1 | mebibytes | MiB |
| Up to 10244 − 1 | gibibytes | GiB |
| Up to 10245 − 1 | tebibytes | TiB |
| Up to 10246 − 1 | pebibytes | PiB |
| 10246 and up | exbibytes | EiB |
1mysql> SELECT FORMAT_BYTES(512), FORMAT_BYTES(18446644073709551615); 2+-------------------+------------------------------------+ 3| FORMAT_BYTES(512) | FORMAT_BYTES(18446644073709551615) | 4+-------------------+------------------------------------+ 5| 512 bytes | 16.00 EiB | 6+-------------------+------------------------------------+
FORMAT_BYTES()는
sys 스키마의
format_bytes() 함수 대신 사용할 수 있으며,
다음 차이점을 유의해야 합니다:
FORMAT_BYTES()는
EiB 단위 indicator를 사용합니다.
sys.format_bytes()는 사용하지 않습니다.
숫자 Performance Schema 지연 시간 또는 대기 시간(단위: 피코초)이 주어지면, 이를 사람이 읽을 수 있는 형식으로 변환하여 값과 단위 indicator로 구성된 문자열을 반환합니다. 이 문자열에는 소수점 이하 2자리까지 반올림된 십진수 시간과 최소 3자리의 유효 자릿수가 포함됩니다. 1나노초 미만의 시간은 정수로 표현되며 반올림되지 않습니다.
_time_val_이
NULL이면 이 함수는
NULL을 반환합니다.
단위 indicator는 다음 표와 같이 시간 값 인자의 크기에 따라 달라집니다.
| Argument Value | Result Units | Result Units Indicator |
|---|---|---|
| Up to 103 − 1 | picoseconds | ps |
| Up to 106 − 1 | nanoseconds | ns |
| Up to 109 − 1 | microseconds | us |
| Up to 1012 − 1 | milliseconds | ms |
| Up to 60×1012 − 1 | seconds | s |
| Up to 3.6×1015 − 1 | minutes | min |
| Up to 8.64×1016 − 1 | hours | h |
| 8.64×1016 and up | days | d |
1mysql> SELECT FORMAT_PICO_TIME(3501), FORMAT_PICO_TIME(188732396662000); 2+------------------------+-----------------------------------+ 3| FORMAT_PICO_TIME(3501) | FORMAT_PICO_TIME(188732396662000) | 4+------------------------+-----------------------------------+ 5| 3.50 ns | 3.15 min | 6+------------------------+-----------------------------------+
FORMAT_PICO_TIME()는
sys 스키마의
format_time() 함수 대신 사용할 수 있으며,
다음 차이점을 유의해야 합니다:
분을 나타낼 때,
sys.format_time()는
m 단위 indicator를 사용하는 반면,
FORMAT_PICO_TIME()는
min을 사용합니다.
sys.format_time()는
w(weeks) 단위 indicator를 사용합니다.
FORMAT_PICO_TIME()는
사용하지 않습니다.
현재 커넥션에 할당된 Performance Schema 스레드 ID를 나타내는
BIGINT UNSIGNED 값을 반환합니다.
스레드 ID 반환 값은 Performance Schema 테이블의
THREAD_ID 컬럼에 사용되는 타입의 값입니다.
Performance Schema 구성은
PS_CURRENT_THREAD_ID()에 대해
PS_THREAD_ID()와 동일한 방식으로 영향을 줍니다.
자세한 내용은 해당 함수 설명을 참조하십시오.
1mysql> SELECT PS_CURRENT_THREAD_ID(); 2+------------------------+ 3| PS_CURRENT_THREAD_ID() | 4+------------------------+ 5| 52 | 6+------------------------+ 7mysql> SELECT PS_THREAD_ID(CONNECTION_ID()); 8+-------------------------------+ 9| PS_THREAD_ID(CONNECTION_ID()) | 10+-------------------------------+ 11| 52 | 12+-------------------------------+
PS_CURRENT_THREAD_ID()는
인자로 NULL 또는
CONNECTION_ID()를 전달하여
sys 스키마의
ps_thread_id() 함수를 호출하는
지름길로 사용할 수 있습니다.
커넥션 ID가 주어지면, 해당 커넥션 ID에 할당된 Performance Schema
스레드 ID를 나타내는 BIGINT UNSIGNED 값을 반환하거나,
해당 커넥션 ID에 대한 스레드 ID가 존재하지 않으면
NULL을 반환합니다.
후자의 경우는 계측되지 않은 스레드이거나
_connection_id_가
NULL인 경우 발생할 수 있습니다.
커넥션 ID 인자는 Performance Schema
threads 테이블의
PROCESSLIST_ID 컬럼 또는
SHOW PROCESSLIST 출력의
Id 컬럼에 사용되는 타입의 값입니다.
스레드 ID 반환 값은 Performance Schema 테이블의
THREAD_ID 컬럼에 사용되는 타입의 값입니다.
Performance Schema 구성은
PS_THREAD_ID() 동작에 대해
다음과 같이 영향을 줍니다.
(이 설명은
PS_CURRENT_THREAD_ID()에도
동일하게 적용됩니다.)
thread_instrumentation
컨슈머를 비활성화하면 스레드 수준에서 통계를 수집하고 집계하는 기능이 비활성화되지만,
PS_THREAD_ID()에는 영향을 주지 않습니다.
performance_schema_max_thread_instances가
0이 아니면, Performance Schema는 스레드 통계를 위한 메모리를 할당하고,
인스턴스 메모리를 사용할 수 있는 각 스레드에 내부 ID를 할당합니다.
인스턴스 메모리를 사용할 수 없는 스레드가 있는 경우,
PS_THREAD_ID()는
NULL을 반환합니다.
이 경우
Performance_schema_thread_instances_lost가
0이 아닙니다.
performance_schema_max_thread_instances가
0이면, Performance Schema는 스레드 메모리를 전혀 할당하지 않으며
PS_THREAD_ID()는
NULL을 반환합니다.
Performance Schema 자체가 비활성화된 경우,
PS_THREAD_ID()는
오류를 발생시킵니다.
1mysql> SELECT PS_THREAD_ID(6); 2+-----------------+ 3| PS_THREAD_ID(6) | 4+-----------------+ 5| 45 | 6+-----------------+
PS_THREAD_ID()는
sys 스키마의
ps_thread_id() 함수 대신 사용할 수 있으며,
다음 차이점을 유의해야 합니다:
NULL을 사용하면,
sys.ps_thread_id()는
현재 커넥션에 대한 스레드 ID를 반환하는 반면,
PS_THREAD_ID()는
NULL을 반환합니다.
현재 커넥션 스레드 ID를 얻으려면
PS_CURRENT_THREAD_ID()를
대신 사용하십시오.14.21 Vector Functions
14.23 Internal Functions