>  기사  >  데이터 베이스  >  mysql에서 큰 테이블이란 무엇입니까? 무슨 큰일이야? 그것을 처리하는 방법?

mysql에서 큰 테이블이란 무엇입니까? 무슨 큰일이야? 그것을 처리하는 방법?

不言
不言원래의
2018-09-17 17:35:554121검색

이 글의 내용은 MySQL에서 빅 테이블이 무엇인지에 관한 것입니다. 무슨 큰일이야? 그것을 처리하는 방법? 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

머리말

비교적으로 어떤 상황에서 데이터베이스 테이블을 "대형 테이블"이라고 부를 수 있나요?

  • 테이블의 데이터가 수천만 행을 초과하면 데이터베이스에 영향을 미칩니다.

  • 테이블 데이터 파일의 크기가 크고 테이블 데이터 파일이 10G를 초과하는 경우(데이터 값이 상대적으로 큰 경우) 하드웨어 대비)

테이블의 영향

큰 테이블이 쿼리에 미치는 영향

느린 쿼리: 특정 기간 내에 필요한 데이터를 필터링하기 어렵습니다
(예: 표시 순서, 소수의 소스, 낮은 차별성, 많은 양의 디스크 IO, 감소된 디스크 효율성, 느린 쿼리 )

대형 테이블이 DDL 작업에 미치는 영향

1. 인덱스 생성에 오랜 시간이 걸림

MYSQL 버전 < 인덱스는 테이블을 잠급니다

MYSQL 버전>= 5.5 테이블은 잠기지 않지만 메인 슬레이브 지연이 발생합니다


2. 테이블 구조를 수정하려면 테이블을 오랫동안 잠가야 합니다

위험:

잠금됩니다. 긴 마스터-슬레이브 지연 발생

정상적인 데이터 작업에 영향을 미침


데이터베이스의 큰 테이블을 처리하는 방법

1. 하위 데이터베이스 및 하위 테이블 큰 테이블을 여러 개의 작은 테이블로 나누기

난이도:

기본 키 선택 테이블 분할

분할 후 파티션 간 데이터 쿼리 및 통계

2. 대용량 테이블의 이력 데이터 보관
장점:

프런트엔드 및 백엔드 비즈니스 부담 감소 영향


어려움:

보관 선택 시점

보관 작업 수행 방법


트랜잭션이란 무엇인가요?

    트랜잭션은 데이터베이스 시스템을 다른 모든 파일 시스템과 구별하는 중요한 기능 중 하나입니다.
  • 트랜잭션은 원자성 SQL 문 집합 또는 독립적인 작업 단위입니다.
  • 트랜잭션 요구 사항은 다음을 충족합니다.
트랜잭션의 원자성

트랜잭션은 분리할 수 없는 최소 작업 단위로 간주되어야 합니다. 전체 트랜잭션의 모든 작업은 성공적으로 제출되거나 모두 실패합니다. 트랜잭션의 경우 이러한 작업 중 일부만 수행하는 것은 불가능합니다.

예:

1. 금융계좌 잔액이 2,000위안 이상인지 확인합니다.

2. 금융계좌 잔액에서 2,000위안을 뺍니다.
3. 활성 예금 계좌에 2,000위안을 추가합니다. 전체 트랜잭션 모든 커밋이 성공하거나 모두 실패하고 롤백됩니다.
트랜잭션 일관성
일관성은 트랜잭션이 데이터베이스를 하나의 일관성 상태에서 다른 일관성 상태로 변환한다는 것을 의미합니다. 트랜잭션이 시작되기 전과 트랜잭션이 끝난 후에도 데이터베이스의 데이터 무결성이 파괴되지 않습니다.

트랜잭션 격리

격리를 위해서는 한 트랜잭션에 의한 데이터베이스의 데이터 수정 사항이 제출되기 전에 다른 트랜잭션에 표시되지 않아야 합니다.

SQL 표준에 정의된 네 가지 유형의 수준(낮음에서 높음으로 격리)(동시성 높음에서 낮음)

커밋되지 않은 읽기(READ UNCOMMITED)

커밋된 읽기(READ COMMITED)

반복 읽기( REPEATABLE READ)

직렬화 가능( 직렬화 가능)

트랜잭션의 지속성
트랜잭션이 제출되면 수정 사항은 데이터베이스에 영원히 저장됩니다. 시스템이 충돌하더라도 제출된 수정된 데이터는 손실되지 않습니다.

뭔가 큰일이야?

많은 데이터를 실행하고 운영하는 데 시간이 오래 걸리는 트랜잭션

위험:

너무 많은 데이터를 잠가서 많은 차단 및 잠금 시간 초과가 발생함

롤백에 시간이 오래 걸림

실행 시간이 길어 마스터가 발생하기 쉬움 -slave Delay

대규모 거래를 처리하는 방법은 무엇입니까?

한 번에 너무 많은 데이터를 처리하지 마세요

  • 트랜잭션에서 불필요한 SELECT 작업을 제거하세요

위 내용은 mysql에서 큰 테이블이란 무엇입니까? 무슨 큰일이야? 그것을 처리하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.