컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - MySql 데이터베이스란 무엇입니까?

MySql 데이터베이스란 무엇입니까?

MySQL 데이터베이스:

MySQL은 가장 일반적으로 사용되는 데이터베이스 관리 언어인 SQL(구조적 쿼리 언어)을 데이터베이스 관리에 사용하는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다.

MySQL은 오픈소스이므로 누구나 일반 공중 라이선스(General Public License)에 따라 다운로드하고 개인의 필요에 따라 수정할 수 있습니다.

MySQL은 속도, 안정성, 적응성으로 인해 많은 주목을 받았습니다. 대부분의 사람들은 트랜잭션 처리 없이 콘텐츠를 관리하는 데 MySQL이 최선의 선택이라는 데 동의합니다. 데이터베이스 소개:

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. MySQL 데이터베이스 시스템은 데이터베이스 관리를 위해 가장 일반적으로 사용되는 데이터베이스 관리 언어인 SQL(구조적 쿼리 언어)을 사용합니다.

MySQL은 오픈 소스이기 때문에 누구나 일반 공중 라이선스에 따라 다운로드할 수 있으며 개인의 필요에 따라 수정할 수 있습니다. MySQL은 속도, 안정성 및 적응성으로 인해 많은 주목을 받았습니다. 대부분의 사람들은 트랜잭션 처리 없이 콘텐츠를 관리하는 데 MySQL이 최선의 선택이라는 데 동의합니다.

MySQL이라는 이름의 유래는 그다지 명확하지 않습니다. 더 영향력 있는 진술은 기본 가이드와 수많은 라이브러리 및 도구에 10년 넘게 "my"라는 접두사가 붙었고, 어쨌든 MySQL AB의 창립자 중 한 명인 Monty Widenius의 딸 이름도 My라는 것입니다. . 이 두 가지 중 어느 것이 MySQL이라는 이름을 붙였는지는 개발자를 포함하여 여전히 미스터리입니다.

MySQL의 돌고래 로고 이름은 "sakila"로, "돌핀 이름 짓기" 콘테스트에서 사용자들이 제안한 수많은 이름 목록 중에서 MySQL AB 창립자가 선택한 것입니다. 우승 이름은 아프리카 스와질랜드 출신의 오픈 소스 소프트웨어 개발자인 Ambrose Twebaze가 제공했습니다. Ambrose에 따르면 Sakila는 SiSwati라는 스와지어 방언에서 유래했으며 Ambrose의 고향인 우간다 근처 탄자니아 아루샤에 있는 작은 마을의 이름이기도 합니다.

MySQL은 그다지 강력하지 않을 수 있지만 오픈 소스와 광범위한 확산으로 인해 많은 사람들이 이 데이터베이스에 대해 배웠습니다. 그 역사도 전설적이다. MySQL 데이터베이스의 역사:

MySQL의 역사는 1979년으로 거슬러 올라간다. 당시 오라클은 중소기업에 불과했고, 마이크로소프트의 SQL Server의 흔적은 전혀 없었다. TcX라는 소규모 회사에서 근무하면서 4M 주파수와 16KB 메모리를 갖춘 컴퓨터에서 실행될 수 있는 BASIC 보고 도구를 설계한 Monty Widenius라는 사람이 있었습니다. 얼마 지나지 않아 이 도구는 C 언어로 다시 작성되어 Unix 플랫폼으로 포팅되었습니다. 당시에는 매우 낮은 수준의 보고서 지향 스토리지 엔진이었습니다. 이 도구를 Unireg라고 합니다.

그러나 이 작은 회사는 자원이 제한되어 있고, 몬티는 제한된 자원의 단점에 직면하여 자신의 잠재력을 발휘할 수 있으며 항상 가장 효율적인 코드를 작성하기 위해 노력합니다. 그래서 습관이 생겼습니다. 몬티와 함께 ​​일하는 다른 동료들이 있습니다. 20년 후에도 계속해서 코드를 작성할 수 있는 사람은 거의 없지만 몬티는 해냈습니다.

1990년부터 TcX의 고객 중 일부가 API에 대한 SQL 지원을 요청하기 시작했습니다. 당시 상용 데이터베이스를 직접 사용하려는 사람들도 있었지만 Monty는 상용 데이터베이스의 속도가 만족스럽지 않다고 느꼈습니다. 그래서 그는 mSQL 코드를 사용하여 이를 자신의 스토리지 엔진에 직접 통합했습니다. 하지만 아쉽게도 효과는 그리 좋지 않습니다. 그 결과 Monty는 야망을 갖게 되었고 SQL 지원을 직접 다시 작성하기로 결심했습니다.

1996년에 MySQL 1.0이 내부 릴리스와 동등한 소수의 사람들에게만 릴리스되었습니다. 1996년 10월에 MySQL 3.11.1이 출시되었는데, ㅎㅎ 2.x 버전은 없었습니다. 처음에는 Solaris에서 바이너리 버전만 제공되었습니다. 한 달 후 Linux 버전이 나타났습니다.

향후 2년 동안 MySQL은 차례로 다양한 플랫폼으로 포팅되었습니다. 출시 당시 채택된 라이선스 정책은 다소 달랐습니다. 무료 상업적 사용은 허용되었지만 MySQL은 출시용 자체 제품과 함께 번들로 제공될 수 없었습니다. 함께 출판하려면 특별한 라이센스를 사용해야 하는데, 이는 돈을 지출한다는 것을 의미합니다. 물론 비즈니스 지원에도 비용이 듭니다. 다른 것들은 사용자가 원하는 대로 사용할 수 있습니다. 이 특별 라이센스는 MySQL에 일부 수익을 가져다주므로 지속적인 개발을 위한 좋은 기반을 마련합니다. (생각해 보면 PostgreSQL은 몇 년 동안 저조한 상태에 있었는데, 이는 아무런 제한 없이 완전 무료인 것과 관련이 있을 수 있습니다.)

MySQL3.22는 기본적인 SQL 지원을 제공하는 대표적인 버전이어야 합니다.

MySQL 관계형 데이터베이스는 1998년 1월에 첫 번째 버전을 출시했습니다. 시스템 코어에서 제공하는 멀티스레딩 메커니즘을 사용하여 완전한 멀티스레드 실행 모드를 제공하고 C, C, 에펠, Java, Perl, PHP, Python과 같은 프로그래밍 언어에 대한 프로그래밍 인터페이스(API)를 제공합니다. 및 Tcl을 지원하며 여러 필드 유형을 지원하며 쿼리에서 SELECT 및 WHERE 작업을 지원하는 완전한 연산자를 제공합니다.

MySQL은 오픈소스이므로 누구나 일반 공중 라이선스(General Public License)에 따라 다운로드하고 개인의 필요에 따라 수정할 수 있습니다. MySQL은 속도, 안정성 및 적응성으로 인해 많은 주목을 받았습니다.

1999~2000년에 MySQL AB(AB는 스웨덴어로 "합자 회사"를 의미)라는 회사가 스웨덴에 설립되었습니다. Berkeley DB 엔진을 개발하기 위해 여러 사람을 고용하고 Sleepycat과 협력했습니다. BDB가 트랜잭션 처리를 지원하기 때문에 MySQL은 그때부터 트랜잭션 처리를 지원하기 시작했습니다.

2000년 4월, MySQL은 기존 스토리지 엔진을 정리하고 이름을 MyISAM으로 지정했습니다. 동시에 2001년에 Heikiki Tuuri는 트랜잭션 처리 및 행 수준 잠금도 지원하는 스토리지 엔진 InnoDB를 통합하기를 희망하면서 MySQL에 제안을 했습니다.

현재 안타깝게도 BDB와 InnoDB는 모두 오라클에 인수된 것으로 보입니다. 오픈소스라 할지라도 경쟁사를 제거하기 위해 어떤 수단을 동원할 것입니다.

MySQL과 InnoDB의 공식 통합 버전은 4.0입니다.

2003년 12월 MySQL 5.0이 출시되면서 View나 저장 프로시저 같은 것들이 도입되기 시작했습니다. 물론 이 기간에도 많은 버그가 있었습니다.

2008년 1월 16일, MySQL은 Sun에 인수되었습니다.

최근 MySQL 창립자인 Monty Widenius가 Sun에 사임을 제출했습니다. 머리가 떠난다.

썬이 인수한 회사들의 불운이 매우 크다고 합니다. MySQL의 미래는 어떻게 될지 모르겠습니다. 저는 MySQL의 생명력이 아직 매우 길다고 믿습니다.

현재 mysql과 php의 조합은 완벽합니다. 많은 대형 웹사이트에서도 mysql 데이터베이스를 사용하고 있습니다. 일반적인 MySQL 명령은 다음과 같습니다.

1 : 사용하세요. 현재 서버에 어떤 데이터베이스가 있는지 확인하는 SHOW 문:

2: 2. MYSQLDATA 데이터베이스를 생성합니다. CREATE DATABASE MYSQLDATA;

3: 생성한 데이터베이스를 선택하세요.

mysqlgt; USE MYSQLDATA; (Enter 키를 눌렀을 때 데이터베이스 변경이 나타나면 작업이 성공한 것입니다!)

4: 현재 데이터베이스에 어떤 테이블이 있는지 확인

mysqlgt; SHOW TABLES;

5: 데이터베이스 테이블 생성

mysqlgt; ( name VARCHAR(20), sex CHAR(1));

6: 테이블의 구조를 표시합니다:

mysqlgt; DESCRIBE MYTABLE;

7 : 테이블로 이동

mysqlgt에 레코드 추가; MYTABLE 값에 삽입 ​​("hyq", "M")

8: 텍스트로 데이터베이스 테이블에 데이터 로드 모드(예: D:/mysql.txt)

mysqlgt; LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;

9: .sql 파일 가져오기 명령(예: D:/mysql.sql)

mysqlgt; 데이터베이스 사용;

mysqlgt; 소스 d:/mysql.sql;

10: 테이블 삭제

mysqlgt ;drop TABLE MYTABLE;

11: 테이블 지우기

mysqlgt; MYTABLE에서 삭제;

12: 업데이트 테이블의 데이터

mysqlgt ;update MYTABLE set sex="f" where name='hyq';

전역 관리 권한에 대한 해당 설명:

FILE: MySQL 서버에서 파일을 읽고 씁니다.

PROCESS: 다른 사용자에게 속한 서비스 스레드를 표시하거나 종료합니다.

RELOAD: 액세스 제어 목록을 다시 로드하고 로그를 새로 고치는 등의 작업을 수행합니다.

SHUTDOWN: MySQL 서비스를 종료합니다.

데이터베이스/데이터 테이블/데이터 열 권한:

ALTER: 기존 데이터 테이블(예: 열 추가/삭제) 및 인덱스를 수정합니다.

CREATE: 새 데이터베이스나 데이터 테이블을 만듭니다.

DELETE: 테이블에서 레코드를 삭제합니다.

DROP: 데이터 테이블이나 데이터베이스를 삭제합니다.

INDEX: 색인을 생성하거나 삭제합니다.

INSERT: 테이블에 레코드를 추가합니다.

SELECT: 테이블의 레코드를 표시/검색합니다.

업데이트: 테이블의 기존 레코드를 수정합니다.

특수 권한:

ALL: 무엇이든 할 수 있습니다(루트와 동일).

사용법: 로그인만 허용되며 다른 것은 허용되지 않습니다.

MySQL 데이터베이스 가져오기 방법:

MySQL 데이터베이스를 가져오는 방법에는 두 가지가 있습니다.

1) 먼저 데이터베이스 SQL 스크립트를 내보낸 다음 가져옵니다.

2) 데이터베이스 디렉터리 및 파일을 직접 복사합니다.

다른 운영체제나 MySQL 버전에서는 파일을 직접 복사하는 방법이 호환되지 않을 수 있습니다.

그래서 일반적으로 SQL 스크립트 형식으로 가져오는 것이 좋습니다. 아래 두 가지 방법을 소개합니다.

2. 방법 1 SQL 스크립트 형식

단계는 다음과 같습니다.

2.1 SQL 스크립트 내보내기

원본 데이터베이스에서 서버에서는 phpMyAdmin 도구 또는 mysqldump 명령줄을 사용하여 SQL 스크립트를 내보낼 수 있습니다.

2.1.1 phpMyAdmin 도구 사용

내보내기 옵션에서 "구조" 및 "데이터" 내보내기를 선택하고 "DROP DATABASE" 및 "DROP TABLE"을 추가하지 마세요. " 옵션.

'파일로 저장' 옵션을 선택하세요. 데이터가 많은 경우 'gzipped' 옵션을 선택할 수 있습니다.

내보낸 SQL 파일을 저장합니다.

2.1.2 mysqldump 명령줄 사용

명령 형식

mysqldump -u 사용자 이름 -p 데이터베이스 이름 gt; p>예:

mysqldump -u root -p abc gt; abc.sql

(데이터베이스 abc를 abc.sql 파일로 내보내기)

비밀번호를 묻는 메시지 표시 에서 데이터베이스 사용자 이름의 비밀번호를 입력하세요.

2.2. 빈 데이터베이스 생성

메인 제어 인터페이스/제어판을 통해 데이터베이스를 생성합니다. 데이터베이스 이름이 abc이고 데이터베이스 전체 사용자가 abc_f라고 가정합니다.

2.3. SQL 스크립트 가져오기 및 실행

또한 두 가지 방법이 있는데, 하나는 phpMyAdmin(mysql 데이터베이스 관리) 도구를 사용하거나 mysql 명령줄을 사용하는 것입니다.

2.3.1 phpMyAdmin 도구 사용

제어판에서 생성된 빈 데이터베이스를 선택하고 "관리"를 클릭하여 관리 도구 페이지로 들어갑니다.

'SQL' 메뉴에서 방금 내보낸 SQL 파일을 찾아 선택한 후 '실행'을 클릭해 업로드하고 실행하세요.

참고: phpMyAdmin에는 업로드된 파일 크기에 대한 제한이 있으며, PHP 자체에도 업로드된 파일 크기에 대한 제한이 있습니다.

원본 SQL 파일이 상대적으로 큰 경우 다음을 수행할 수 있습니다. 먼저 gzip을 사용하여 압축하세요. SQL 파일과 같은 텍스트 파일의 경우 1:5 이상의 압축률을 얻을 수 있습니다.

gzip 사용 방법:

# gzip xxxxx.sql

가져오기

xxxxx.sql.gz 파일.

비밀번호를 묻는 메시지가 나타나면 데이터베이스 사용자 이름의 비밀번호를 입력하세요.

3 직접 복사

데이터베이스가 상대적으로 큰 경우 직접 복사 방법을 고려해 볼 수 있지만, 버전이나 운영 체제에 따라 호환되지 않을 수 있으므로 주의해서 사용하세요.

3.1 원본 파일 준비

tar를 사용하여 파일로 패키징

3.2 빈 데이터베이스 만들기

3.3 압축 풀기

다음과 같은 임시 디렉토리에서 추출합니다:

cd /tmp

tar zxf mydb.tar.gz

3.4 copy

압축 해제된 데이터베이스 파일을 관련 디렉터리에 복사합니다.

cd mydb/

cp * /var/lib/mysql/mydb/

FreeBSD의 경우:

cp * /var/db/mysql/mydb/

3.5 권한 설정

복사된 파일의 소유자를 mysql:mysql로 ​​변경하고, 660에 대한 권한

chown mysql: mysql /var/lib/mysql/mydb/*

chmod 660 /var/lib/mysql/mydb/*Mssql mysql을 변환하는 방법:

1. 가이드 테이블 구조

MySQL을 사용하여 생성 스크립트를 생성합니다. 내보낼 스크립트를 찾아 MySQL 구문에 따라 수정하여 MySQL 데이터베이스에 테이블의 열 구조를 생성합니다.

2. 테이블 데이터 내보내기

MSSQL 측에서 텍스트 파일을 내보내려면 bcp를 사용하세요.

bcp "Select * FROM dbname.dbo.tablename;" tablename.txt -c -Slocalhost\db2005 -Usa

여기서 ""는 내보낼 SQL 문입니다. -c는 필드 분리에 \t를 사용하도록 지정하고, 레코드 분리에 \n을 사용하도록 지정합니다. 데이터베이스 서버를 지정하고 예를 들어 -U는 사용자 이름을 지정하고, -P는 비밀번호를 지정합니다.

MySQL 측에서 mysqlimport를 사용하여 텍스트 파일을 해당 테이블로 가져옵니다.

mysqlimport -uroot -p 데이터베이스 이름 /home/test/ tablename.txt

이 중 -u는 사용자 이름을 지정하고, -p는 비밀번호를 지정하고, 데이터베이스 이름은 데이터베이스 이름을 지정하며, 테이블 이름은 테이블 이름과 동일합니다. 파일 이름. MySQL 백업 및 복구:

MySQL 백업 및 복구 데이터 일반 ​​단계

데이터베이스 백업의 예:

1. 백업 전

mysqlgt; LOCK TABLES tbl1 READ, tbl1 READ,…

mysqldump 유틸리티에서 --lock-tables 옵션을 사용하면 위의 내용을 사용할 필요가 없습니다. SQL문.

2. 데이터베이스의 테이블 구조와 데이터 내보내기

shellgt; --opt db_name.sql

3. 업데이트 로그

shellgt; mysqladmin 플러시-로그

이것은 데이터 복구를 준비하기 위해 백업 후 데이터 변경 사항을 기록할 수 있습니다.

4. 테이블에 대한 읽기 잠금을 해제합니다.

mysqlgt;UNLOCK TABLES;

위 프로세스의 속도를 높이려면 다음을 수행할 수 있습니다.

shellgt; mysqldump --lock-tables --opt db_name.sql; mysqladmin flash-logs

그러나 이로 인해 몇 가지 사소한 문제가 발생할 수 있습니다.

위 명령은 새 업데이트 로그를 활성화하기 전에 테이블에 대한 읽기 잠금을 복원합니다.

업데이트 작업이 많은 사이트에서는 백업 후 업데이트된 데이터가 새 로그에 기록되지 않을 수 있습니다.

이제 위에서 백업한 데이터베이스를 복원합니다.

1. 관련 테이블에 쓰기 잠금을 사용합니다.

mysqlgt; LOCK TABLES tbl1 WRITE, tbl1 WRITE,...

2. 백업된 데이터 복원

shellgt; mysql db_name.sql

3.

shellgt; mysql --one-database db_name lt; 호스트 이름.nnn

사용할 로그 이름은 호스트 이름.nnn이라고 가정합니다.

4.

shellgt ;mysqladmin flash-logs

5. 테이블에 대한 쓰기 잠금을 잠금 해제합니다.

mysqlgt;UNLOCK TABLES;

희망합니다 위의 예는 데이터 백업 방법이 다양하고 사용하는 방법이 위에서 언급한 방법과 매우 다를 수 있기 때문에 영감을 줄 수 있습니다. 그러나 백업 및 복구의 경우 테이블을 잠그고 새 업데이트 로그를 활성화하는 시점은 유사해야 하므로 이 문제를 신중하게 고려하십시오. MySQL 데이터베이스 최적화:

InnoDB를 스토리지 엔진으로 선택

대규모 제품 데이터베이스는 안정성과 동시성에 대한 요구 사항이 더 높습니다. 기본 MySQL 스토리지 엔진인 InnoDB는 MyISAM보다 낫습니다. 더 나은 선택이었다고 하더군요.

데이터베이스 구조 최적화

I/O 오버헤드를 줄이기 위해 데이터베이스의 스키마, 테이블, 필드를 구성하고 관련 항목을 함께 저장하며, 데이터 증가 성장, 성능은 높은 수준으로 유지될 수 있습니다.

데이터 테이블은 차지하는 공간을 최소화하도록 설계해야 하며, 테이블의 기본 키는 최대한 짧아야 합니다. ·InnoDB 테이블의 경우 기본 키가 위치한 컬럼은 각 보조 인덱스 항목에 복제 가능하므로 보조 인덱스가 많은 경우 짧은 기본 키가 많은 공간을 절약할 수 있습니다.

쿼리 성능을 향상시키는 데 필요한 인덱스만 생성하세요. 인덱스는 검색을 용이하게 하지만 삽입 및 업데이트 작업의 실행 시간을 늘립니다.

InnoDB의 ChangeBuffering 기능

InnoDB는 보조 인덱스를 유지하는 데 필요한 디스크 I/O를 줄이기 위해 변경 버퍼링 구성을 제공합니다. 대규모 데이터베이스에서는 보조 인덱스를 최신 상태로 유지하기 위해 많은 수의 테이블 작업과 과도한 I/O가 발생할 수 있습니다. 관련 페이지가 버퍼 풀에 없으면 InnoDB의 변경 버퍼는 보조 인덱스 항목에 대한 변경 사항을 캐시하므로 디스크에서 페이지를 즉시 읽을 수 없어 발생하는 시간 소모적인 I/O 작업을 방지합니다. 페이지가 버퍼 풀에 로드되면 버퍼링된 변경 사항이 병합되고 업데이트된 페이지는 나중에 디스크에 플러시됩니다. 이렇게 하면 성능이 향상되며 MySQL 5.5 이상에서 사용할 수 있습니다.

InnoDB 페이지 압축

InnoDB는 테이블의 페이지 수준 압축을 지원합니다. 데이터 페이지가 기록되면 이를 압축하기 위해 특정 압축 알고리즘이 사용됩니다. 압축된 데이터는 페이지 끝에서 빈 블록을 해제하는 홀 펀칭 메커니즘을 통해 디스크에 기록됩니다. 압축이 실패하면 데이터가 변경되지 않고 기록됩니다. 일반적으로 인덱스가 전체 데이터베이스 크기에서 큰 부분을 차지하므로 테이블과 인덱스를 압축합니다. 압축을 사용하면 메모리, I/O 또는 처리 시간을 크게 절약할 수 있으므로 성능 및 확장성 향상이라는 목적을 달성할 수 있습니다. 또한 메모리와 디스크 간에 전송되는 데이터의 양도 줄어듭니다. MySQL5.1 이상 버전에서는 이 기능을 지원합니다.

페이지 압축은 공유 테이블스페이스의 테이블을 지원하지 않습니다. 공유 테이블스페이스에는 시스템 테이블스페이스, 임시 테이블스페이스 및 일반 테이블스페이스가 포함됩니다.

일괄 데이터 가져오기 사용

기본 키에 정렬된 데이터 소스를 사용하여 일괄 데이터를 가져오면 데이터 삽입 프로세스 속도를 높일 수 있습니다. 그렇지 않으면 순서를 유지하기 위해 다른 행 사이에 행을 삽입해야 할 수 있으며, 이로 인해 디스크 I/O가 많아지고 성능에 영향을 미치며 페이지 분할이 늘어날 수 있습니다. 각 삽입에 대해 디스크에 로그 플러시를 수행하므로 자동 커밋 모드를 끄는 것도 좋습니다. 대량 삽입 중에 고유 키 및 외래 키 검사를 일시적으로 이동하면 디스크 I/O를 크게 줄일 수도 있습니다. 새로 생성된 테이블의 경우 대량 가져오기 후에 외래 키/고유 키 제약 조건을 생성하는 것이 가장 좋습니다.

데이터가 안정적인 크기에 도달하거나 테이블이 수십 또는 수백 메가바이트 추가되면 OPTIMIZETABLE 문을 사용하여 테이블을 재구성하고 낭비되는 공간을 압축하는 것을 고려해야 합니다. 재구성된 테이블의 전체 테이블 스캔에는 I/O가 덜 필요합니다.

InnoDB 디스크 I/O 최적화

InnoDB 버퍼 풀 크기를 늘리면 디스크 I/O를 통하지 않고 버퍼 풀에서 쿼리에 액세스할 수 있습니다. 시스템 변수 innodb_flush_method를 조정하여 최적의 수준을 달성하도록 버퍼 지우기 표시기를 조정합니다.

MySQL 메모리 할당

MySQL에 충분한 메모리를 할당하기 전에 다양한 영역에서 MySQL의 메모리 요구 사항을 고려하십시오. 고려해야 할 주요 영역은 다음과 같습니다. 동시 연결 - 동시 연결 수가 많으면 정렬 및 임시 테이블에 많은 메모리가 필요합니다. 이 글을 쓰는 시점에서는 3000개의 동시 연결을 처리하는 데이터베이스에 16GB~32GB의 RAM이면 충분합니다.

메모리 조각화는 약 10개 이상의 메모리 블록을 소비할 수 있습니다. innodb_buffer_pool_size, key_buffer_size, query_cache_size 등과 같은 캐시 및 버퍼는 할당된 메모리의 약 80%를 소비합니다.

일상 유지 관리

느린 쿼리 로그를 정기적으로 확인하고 쿼리 메커니즘을 최적화하여 캐시를 효과적으로 사용하여 디스크 I/O를 줄입니다. 전체 테이블 스캔을 수행하는 것보다 최소한의 행 수를 스캔하도록 최적화하십시오.

DBA가 성능을 확인하고 분석하는 데 도움이 될 수 있는 기타 로그로는 오류 로그, 일반 쿼리 로그, 바이너리 로그, DDL 로그(메타데이터 로그) 등이 있습니다.

캐시와 버퍼를 정기적으로 플러시하여 조각화를 줄입니다. OPTIMIZETABLE문을 사용하여 테이블을 재구성하고 잠재적으로 낭비되는 공간을 압축하십시오. ?

上篇: 호스트가 전기를 꽂지 않고 인터넷에 접속할 수 있습니까? 下篇: 대선 시뮬레이터가 못생겼는데 어떡하죠?
관련 내용