ySQL 질의 해결 방법

ySQL 질의 해결 방법

2022-06-01 last update

6 minutes reading Ubuntu MySQL Databases Ubuntu 18.04
때때로 사용자가 데이터에 대한 조회를 시작하면 문제가 발생할 수 있다.일부 데이터베이스 시스템(MySQL 포함)에서 의 질의 문구는 다음과 같이 세미콜론(;)으로 끝나야 질의를 완료할 수 있습니다.
  1. SHOW * FROM table_name;
쿼리가 끝날 때 세미콜론이 없으면 세미콜론을 입력하고 ENTER을 눌러 쿼리를 완료할 때까지 새 줄에 계속 프롬프트가 표시됩니다.
일부 사용자들은 그들의 조회 속도가 매우 느리다는 것을 발견할 수 있다.어떤 조회 문장이 속도가 느린 원인을 찾아내려면 MySQL의 느린 조회 로그를 활성화하고 보는 방법이 있습니다.이를 위해 MySQL 서버를 구성하는 데 사용할 mysqld.cnf 파일을 엽니다.이 파일은 일반적으로 /etc/mysql/mysql.conf.d/ 디렉토리에 저장됩니다.
  1. sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
다음 행이 보일 때까지 파일을 스크롤합니다.
/etc/mysql/mysql.conf.d/mysqld.회사 명
. . .
#slow_query_log         = 1
#slow_query_log_file    = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
. . .
이러한 주석 삭제 명령은 느린 조회 로그에 MySQL의 기본 구성 옵션을 제공합니다.구체적으로 다음과 같은 작업을 수행할 수 있습니다.
  • slow-query-log: 1으로 설정하면 느린 검색 로그를 사용할 수 있습니다.
  • slow-query-log-file: 이것은 MySQL이 느린 조회를 기록할 파일을 정의합니다.이 예에서는 /var/log/mysql-slow.log 파일을 가리킵니다.
  • long_query_time: 이 명령을 2으로 설정하여 MySQL을 완료 시간이 2초가 넘는 조회를 기록하도록 설정합니다.
  • log_queries_not_using_indexes: 이것은 MySQL도 실행할 때 색인이 없는 조회를 /var/log/mysql-slow.log 파일에 기록해야 한다는 것을 알려줍니다.느린 검색 로그 실행에는 이 설정이 필요하지 않지만, 효율이 낮은 검색을 발견하는 데 도움이 됩니다.
  • 선행 파운드 기호(#)를 삭제하여 이러한 행에 대한 설명을 취소합니다.이 섹션은 다음과 같습니다.
    /etc/mysql/mysql.conf.d/mysqld.회사 명
    . . .
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql-slow.log
    long_query_time = 2
    log_queries_not_using_indexes
    . . .
    
    참고: MySQL 8+를 실행하는 경우 기본적으로 mysqld.cnf 파일에는 이러한 주석 행이 나타나지 않습니다.이 경우 파일 하단에 다음 행을 추가합니다.
    /etc/mysql/mysql.conf.d/mysqld.회사 명
    . . .
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql-slow.log
    long_query_time = 2
    log_queries_not_using_indexes
    
    느린 조회 로그를 사용하면 파일을 저장하고 닫습니다.그런 다음 MySQL 서비스를 다시 시작합니다.
    1. sudo systemctl restart mysql
    이러한 설정이 있으면 느린 검색 로그를 보고 문제가 있는 검색 문장을 찾을 수 있습니다.less을 사용하여 다음과 같이 수행할 수 있습니다.
    1. sudo less /var/log/mysql_slow.log
    속도가 느려지는 검색을 선택하면 How To Optimize Queries and Tables in MySQL and MariaDB on a VPS에서 우리의 안내서를 찾아 최적화를 도울 수 있습니다.
    또한 MySQL에는 EXPLAIN문이 포함되어 있으며, 이 문구는 MySQL이 조회를 어떻게 실행하는지에 대한 정보를 제공합니다.This page from the official MySQL documentationEXPLAIN을 어떻게 사용하여 저효과 조회를 돋보이게 하는지 깊이 있게 이해했다.
    기본 조회 구조에 대한 도움말은 저희 Introduction to MySQL Queries을 참조하십시오.