Loading...
MySQL 9.5 Reference Manual 9.5의 29.11 Performance Schema General Table Characteristics의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
performance_schema 데이터베이스의 이름은 소문자이고, 이 안의 테이블 이름도 모두 소문자입니다. 쿼리에서는 이름을 소문자로 지정해야 합니다.
performance_schema 데이터베이스의 많은 테이블은 읽기 전용이며 수정할 수 없습니다:
1mysql> TRUNCATE TABLE performance_schema.setup_instruments; 2ERROR 1683 (HY000): Invalid performance_schema usage.
일부 setup 테이블에는 Performance Schema 동작에 영향을 주기 위해 수정할 수 있는 컬럼이 있습니다. 또한 일부는 행의 insert 및 delete도 허용합니다. 수집된 이벤트를 지우기 위한 truncation은 허용되므로, events_waits_ 접두어로 이름이 지정된 테이블과 같이 그러한 종류의 정보를 포함하는 테이블에는 TRUNCATE TABLE을 사용할 수 있습니다.
Summary 테이블은 TRUNCATE TABLE로 truncate할 수 있습니다. 일반적으로 그 효과는 행을 제거하는 것이 아니라 summary 컬럼을 0 또는 NULL로 재설정하는 것입니다. 이는 수집된 값을 지우고 집계를 다시 시작할 수 있게 해 줍니다.
예를 들어 runtime 구성 변경을 수행한 후에 유용할 수 있습니다. 이 truncation 동작에 대한 예외는 개별 summary 테이블 섹션에 따로 명시되어 있습니다.
Privilege는 다른 데이터베이스 및 테이블과 동일합니다:
performance_schema 테이블에서 조회하려면 SELECT 권한이 필요합니다.
수정 가능한 컬럼을 변경하려면 UPDATE 권한이 필요합니다.
truncate 가능한 테이블을 truncate하려면 DROP 권한이 필요합니다.
Performance Schema 테이블에 적용되는 privilege 집합이 제한적이기 때문에, 데이터베이스나 테이블 수준에서 privilege를 부여하기 위한 축약 형태로 GRANT ALL을 사용하려는 시도는 에러와 함께 실패합니다:
1mysql> GRANT ALL ON performance_schema.* 2 TO 'u1'@'localhost'; 3ERROR 1044 (42000): Access denied for user 'root'@'localhost' 4to database 'performance_schema' 5mysql> GRANT ALL ON performance_schema.setup_instruments 6 TO 'u2'@'localhost'; 7ERROR 1044 (42000): Access denied for user 'root'@'localhost' 8to database 'performance_schema'
대신, 정확히 원하는 privilege만 부여해야 합니다:
1mysql> GRANT SELECT ON performance_schema.* 2 TO 'u1'@'localhost'; 3Query OK, 0 rows affected (0.03 sec) 4 5mysql> GRANT SELECT, UPDATE ON performance_schema.setup_instruments 6 TO 'u2'@'localhost'; 7Query OK, 0 rows affected (0.02 sec)
29.10 Performance Schema Statement Digests and Sampling
29.12 Performance Schema Table Descriptions