mysql 빅데이터에서 Limit 사용
항상 Oracle을 사용해 온 사람으로서 오늘은 MySQL에서 동일한 기능이 서로 다른 크기의 성능을 보여 매우 놀랐습니다.
먼저 ibmng(id,title,info) 고유 ID 키 인덱스 제목 테이블을 살펴보세요
먼저 두 문을 살펴보세요.
select * from ibmnglimit 1000000, 10
select * from ibmnglimit 10,10
많은 분들이 별 차이 없을 거라고 생각하시겠지만, 착각입니다. 차이가 너무 크네요.(일부 있을 수도 있습니다) 기계에 따라 다르지만 확실히 10배 이상입니다.) 구체적인 실행 시간은 궁금한 학생들에게 맡깁니다.
이게 왜 다 오프셋 잘못이에요!
최적화하려는 경우 다음과 같이 오프셋을 줄이는 방법을 찾을 수 있습니다.
Select * From ibmng Where id >=(
Select id From ibmng Order By id limit 1000000,1
)limit 10
확실히 문제가 보일 것입니다. 동일한 오프셋과 동일한 크기가 아닌가요? (하지만 또 틀렸어요, 결과는 실행 후에야 알 수 있죠!)
이유는 id가 인덱스라서 빠르기 때문에 다음 sql은 어떨까요:
select id from ibmng where title='mysql' order by idlimit 1000000,10;
모두가 이 SQL에 대해 또다시 틀릴 것이라고 추측할 것이며 또한 달팽이처럼 느립니다. (여기 있는 모든 사람은 제목이 색인화되어 있다고 생각할 것입니다. 왜 이런 일이 발생합니까!)
다음으로 모두는 다음과 같이 또 다른 SQL을 실행합니다.
select id from ibmng where title='mysql'limit 1000000 , 10;
실행해 보면 속도가 sousou만큼 빠르다는 것을 알 수 있습니다!
이는 모두 인덱스 사용 때문입니다. 제목='mysql'에서 ID 제한이 1000000,10인 경우 복합 인덱스를 추가하세요. (제목, 아이디)!
참고: 다음 내용은 제한과 관련이 없습니다!
마지막으로 현재 시나리오로 돌아가서 수천만 개의 데이터를 일괄적으로 읽는 경우 제한을 사용하지 않고 기본 키 범위를 사용하여 판단하는 것이 가장 좋습니다! (예: id<=1001000 및 id>=1000001)

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

Navicat 자체는 데이터베이스 비밀번호를 저장하지 않으며 암호화 된 암호 만 검색 할 수 있습니다. 솔루션 : 1. 비밀번호 관리자를 확인하십시오. 2. Navicat의 "비밀번호 기억"기능을 확인하십시오. 3. 데이터베이스 비밀번호를 재설정합니다. 4. 데이터베이스 관리자에게 문의하십시오.

Navicat Premium을 사용하여 데이터베이스 생성 : 데이터베이스 서버에 연결하고 연결 매개 변수를 입력하십시오. 서버를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 생성을 선택하십시오. 새 데이터베이스의 이름과 지정된 문자 세트 및 Collation의 이름을 입력하십시오. 새 데이터베이스에 연결하고 객체 브라우저에서 테이블을 만듭니다. 테이블을 마우스 오른쪽 버튼으로 클릭하고 데이터 삽입을 선택하여 데이터를 삽입하십시오.

MySQL에서 테이블을 복사하려면 새 테이블을 만들고, 데이터를 삽입하고, 외래 키 설정, 인덱스 복사, 트리거, 저장된 절차 및 기능이 필요합니다. 특정 단계에는 다음이 포함됩니다 : 동일한 구조를 가진 새 테이블 작성. 원래 테이블의 데이터를 새 테이블에 삽입하십시오. 동일한 외래 키 제약 조건을 설정하십시오 (원래 테이블에 하나가있는 경우). 동일한 색인을 만듭니다. 동일한 트리거를 만듭니다 (원래 테이블에 하나가있는 경우). 동일한 저장된 절차 또는 기능을 만듭니다 (원래 테이블이 사용되는 경우).

MariaDB 용 Navicat은 암호가 암호화 된 양식으로 저장되므로 데이터베이스 비밀번호를 직접 볼 수 없습니다. 데이터베이스 보안을 보장하려면 비밀번호를 재설정하는 세 가지 방법이 있습니다. Navicat을 통해 비밀번호를 재설정하고 복잡한 비밀번호를 설정하십시오. 구성 파일을 봅니다 (권장되지 않음, 위험이 높음). 시스템 명령 줄 도구를 사용하십시오 (권장되지 않으면 명령 줄 도구에 능숙해야 함).

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

Navicat이 데이터베이스 및 해당 솔루션에 연결할 수없는 일반적인 이유 : 1. 서버의 실행 상태를 확인하십시오. 2. 연결 정보를 확인하십시오. 3. 방화벽 설정을 조정하십시오. 4. 원격 액세스 구성; 5. 네트워크 문제 문제 해결; 6. 권한을 확인하십시오. 7. 버전 호환성을 보장합니다. 8. 다른 가능성 문제를 해결하십시오.

Navicat에서 SQL을 수행하는 단계 : 데이터베이스에 연결하십시오. SQL 편집기 창을 만듭니다. SQL 쿼리 또는 스크립트를 작성하십시오. 실행 버튼을 클릭하여 쿼리 또는 스크립트를 실행하십시오. 결과를 봅니다 (쿼리가 실행 된 경우).
