Tag Archives: mysql

[Linux/MySQL] 쿼리 한번으로 데이터베이스 용량 알아내기

사용중인 데이터베이스들의 용량을 알아오기 위해서는 다양한 방법이 사용될 수 있겠고 다양한 툴들이 존재할 것입니다. 하지만 간편하게 쿼리 한번으로 용량을 알아내는 방법도 있습니다.

다음의 쿼리를 사용하면 손쉽게 용량을 메가바이트 단위로 알아낼 수 있습니다.
[code]SELECT table_schema “Database Name”, SUM(data_length + index_length) / 1024 / 1024 “Size(MB)” FROM information_schema.TABLES GROUP BY table_schema;[/code]
사용자 삽입 이미지
어떠신가요?

[MySQL] 실행중인 쿼리 콘솔에서 중단시키기

간혹 특정 프로그램에서 실행한 쿼리가 잘못되어 데이터베이스 서버 전체가 먹통이 되는 경우가 생길 수 있습니다.

정체를 알 수 없는 상황에서의 이런 현상은 원인을 잡아내기가 힘들죠. 하지만 그냥 문제가 되는 쿼리(보통 이런 문제는 두가지 쿼리가 서로의 종료를 기다리며 발생하는 데드락 현상이 많습니다)를 바로 죽이면 해결됩니다.

mysql> SHOW PROCESSLIST;
+----+--------+--------------+---------+---------+------+-------+-------------
| Id | User   | Host         | db      | Command | Time | State | Info        
+----+--------+--------------+---------+---------+------+-------+-------------
|  5 | root   | localhost    | STARPL3 | Query   | 2048 | init  | INSERT INTO ...
| 13 | root   | localhost    | NULL    | Query   |    0 | NULL  | show processlist
| 14 | lapoly | Canopus:3750 | STARPL3 | Sleep   |  160 |       | NULL        
| 15 | lapoly | Canopus:3751 | NULL    | Sleep   |  386 |       | NULL        
+----+--------+--------------+---------+---------+------+-------+-------------
4 rows in set (0.00 sec)

딱 보았을때 INSERT INTO 쿼리문의 Time을 보니 엄청나게 오랜 시간이 걸리는 쿼리문이라는것을 알 수 있습니다.

저것을 죽일려면 KILL 명령을 사용하시면 됩니다. [참고]

mysql> KILL 5

앞에 나와있는 Id의 값을 인자로 사용하시면 잠시 후 해당 쿼리가 강제로 중단됩니다.