Percona 5.5How to locate unused indexes
This article mainly shows you "Percona 5.5 how to locate unused indexes", the content is easy to understand, clear, hope to help you solve your doubts, the following let the editor lead you to study and learn "Percona 5.5 how to locate unused indexes" this article.
Turn on the userstat parameter and let MySQL run for a while.
You can then query the frequency of index usage in the INFORMATION_SCHEMA.INDEX_ statistics table.
Mysql > show global variables like'% users%'
+-+ +
| | Variable_name | Value |
+-+ +
| | userstat | OFF |
+-+ +
1 row in set (0.00 sec)
Mysql > select * from information_schema.index_statistics
Empty set (0.00 sec)
Mysql > set global userstat=1
Query OK, 0 rows affected (0.00 sec)
Mysql > show global variables like'% users%'
+-+ +
| | Variable_name | Value |
+-+ +
| | userstat | ON |
+-+ +
1 row in set (0.00 sec)
Mysql > select * from information_schema.index_statistics
Empty set (0.00 sec)
Mysql > explain select * from emp where hiredate > '1982-01-01' and deptno = 20
+-+-- +-+
| | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+-+-- +-+
| | 1 | SIMPLE | emp | range | idx_date_sal_job,idx_date | idx_date_sal_job | 4 | NULL | 3 | Using where |
+-+-- +-+
1 row in set (0.00 sec)
Mysql > select * from information_schema.index_statistics
Empty set (0.00 sec)
Mysql > select * from emp where hiredate > '1982-01-01' and deptno = 20
+-+ +
| | empno | ename | job | mgr | hiredate | sal | comm | deptno |
+-+ +
| | 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000 | NULL | 20 |
| | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100 | NULL | 20 |
+-+ +
2 rows in set (0.00 sec)
Mysql > select * from information_schema.index_statistics
+-+
| | TABLE_SCHEMA | TABLE_NAME | INDEX_NAME | ROWS_READ | |
+-+
| | test | emp | idx_date_sal_job | 3 |
+-+
1 row in set (0.04 sec)
Mysql > select * from emp
+-+ +
| | empno | ename | job | mgr | hiredate | sal | comm | deptno |
+-+ +
| | 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800 | NULL | 20 |
| | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600 | 1600 | 30 |
| | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250 | 1250 | 30 |
| | 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975 | NULL | 20 |
| | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250 | 1400 | 30 |
| | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850 | NULL | 30 |
| | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450 | NULL | 10 |
| | 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000 | NULL | 20 |
| | 7839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000 | NULL | 10 |
| | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500 | 0 | 30 |
| | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100 | NULL | 20 |
| | 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950 | NULL | 30 |
| | 7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000 | NULL | 20 |
| | 7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300 | NULL | 10 |
+-+ +
14 rows in set (0.00 sec)
Mysql > select * from information_schema.index_statistics
+-+
| | TABLE_SCHEMA | TABLE_NAME | INDEX_NAME | ROWS_READ | |
+-+
| | test | emp | PRIMARY | 14 |
| | test | emp | idx_date_sal_job | 3 |
+-+
2 rows in set (0.00 sec)
Mysql > select * from emp where hiredate > '1982-01-01' and deptno = 20
+-+ +
| | empno | ename | job | mgr | hiredate | sal | comm | deptno |
+-+ +
| | 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000 | NULL | 20 |
| | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100 | NULL | 20 |
+-+ +
2 rows in set (0.00 sec)
Mysql > select * from emp
+-+ +
| | empno | ename | job | mgr | hiredate | sal | comm | deptno |
+-+ +
| | 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800 | NULL | 20 |
| | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600 | 1600 | 30 |
| | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250 | 1250 | 30 |
| | 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975 | NULL | 20 |
| | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250 | 1400 | 30 |
| | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850 | NULL | 30 |
| | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450 | NULL | 10 |
| | 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000 | NULL | 20 |
| | 7839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000 | NULL | 10 |
| | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500 | 0 | 30 |
| | 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100 | NULL | 20 |
| | 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950 | NULL | 30 |
| | 7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000 | NULL | 20 |
| | 7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300 | NULL | 10 |
+-+ +
14 rows in set (0.00 sec)
Mysql > select * from information_schema.index_statistics
+-+
| | TABLE_SCHEMA | TABLE_NAME | INDEX_NAME | ROWS_READ | |
+-+
| | test | emp | PRIMARY | 28 | |
| | test | emp | idx_date_sal_job | 6 |
+-+
2 rows in set (0.00 sec)
These are all the contents of the article "how to locate unused indexes in Percona 5.5". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!