정말 큰 (말하자면 1 억 행) 데이터베이스가 정기적으로 손상됩니까? 나는 스케일링에 전혀 익숙하지 않다. 그러나 하나의 데이터베이스가 실제 데이터의 큰 덩어리의 열쇠가되어 "오 그래, 그 쿼리는 20,000,000-25,000,000 블록을 필요로한다"라고 말하는 인덱스가 될 수 있다고 생각했다. 그 블록으로 쿼리를 보내고 나머지는 건너 뜁니다. 이것은 구현할 필요가있는 것이 아니라, 올바른 방향으로 나를 가리키는 자원을 여기에서 요청할 것이라고 생각했습니다. 문안 인사.대형 MySQL 데이터베이스는 어떻게 효율적으로 작동합니까?
3
A
답변
3
물론 가능합니다. 예를 들어 대형 시스템에는 데이터베이스와로드 밸런스가 포함 된 여러 데이터 센터가있는 경우가 많습니다.
당신이 말하는 것처럼 대형 데이터베이스를 분할하는 핵심 개념은 데이터베이스 샤딩입니다. This article을 사용하면 샤딩 (sharding)이 어떻게 데이터베이스를 분할하여보다 쉽게 액세스하고 개별 서버의 부하를 줄일 수 있는지 더 잘 이해할 수 있습니다.
한 번 생각해 보니이 유형의 기술이 약 백만 줄의 데이터베이스에 필요하다고 생각했지만 3NF와 적절한 데이터베이스 구조를 배웠을 때 나는 끔찍하게 구현 된 데이터베이스를 수리했습니다. 이 점을 상기시켜 줘서 고마워! 나는 당신이 얻는 다른 대답을보기 위해 흥미가있을 것이다.
0
큰 테이블의 가장 큰 문제점은 쿼리로 끌어 올 데이터의 양입니다. 1 백만 개의 행 테이블을 가지고 작업 할 때 LIMIT 절을 잘 사용하는 것이 중요합니다. 모든 것을 선택하려고 시도하지만 서버를 죽이면 정확히 한 번 실수를 저지른 것입니다.
인덱스와 LIMIT 절 사이에서 MySQL 테이블은 전체 데이터 세트에 한 번에 액세스하지 않는 한 매우 큰 데이터 세트가 저장된 경우 매우 유용 할 수 있습니다.
0
MySQL 5.1에는 설명대로 (기본 수준에서) 테이블을 여러 섹션으로 나눌 수있는 기능이 있습니다 (예 : table partitioning). 그러나 MySQL에는 모든 성능 튜닝 기능이 있으므로 각 설치에 가장 적합한 옵션을 선택하려면 모든 기능을 잘 알고 있어야합니다.
관련 문제
- 1. MySQL 데이터베이스는
- 2. MySQL 인덱스 : 어떻게 작동합니까?
- 3. ASP.NET에서 대형 GridView를 효율적으로 표시
- 4. mysql 데이터베이스는 어떻게 자동으로 삭제 되나요?
- 5. MySQL CASE는 어떻게 작동합니까?
- 6. mysql - mysqldump는 어떻게 작동합니까?
- 7. MySQL 자동 증가는 어떻게 작동합니까?
- 8. MYSQL 자체 가입은 어떻게 작동합니까?
- 9. System.Windows.Interactivity.EventTrigger.EventName은 효율적으로 리플렉션을 사용하거나 사용하지 않고 어떻게 작동합니까?
- 10. 근검은 어떻게 내부적으로 작동합니까?
- 11. has_one 관계, 데이터베이스는 어떻게 보입니까?
- 12. Geolocation 데이터베이스는 어떻게 조립 되었습니까?
- 13. PHP/MySQL 모두에서 호스팅은 어떻게 작동합니까?
- 14. 대형 문서에서 lucene 검색 기능이 작동합니까?
- 15. MySQL 또는 Oracle 중 사용할 데이터베이스는 무엇입니까?
- 16. 대형 폼 = 대형 PHP/mySql 쿼리 문자열 ... 좋은 해결책이 있습니까?
- 17. 데이터베이스가 내부적으로 어떻게 작동합니까?
- 18. 어떻게 효율적으로 이분화합니까?
- 19. 기본로드 밸런서는 어떻게 작동합니까?
- 20. DB 클러스터링은 어떻게 작동합니까?
- 21. 어떻게 작동합니까?
- 22. 어떻게 작동합니까?
- 23. 어떻게 작동합니까?
- 24. Microsoft 배치 파일은 어떻게 작동합니까?
- 25. 대형 git 저장소를 어떻게 관리합니까?
- 26. 대형 시스템 용 MySQL 구성 파일
- 27. sqlite 또는 mysql 대형 데이터 집합에 대한
- 28. Joomla/VirtueMart를 사용하는 대형 MySQL tmp 파일
- 29. 메모리 내 데이터베이스는 내구성을 어떻게 제공합니까?
만약 당신이 MySQL에 대해 이야기하고 있다면, 당신은 1 억 개의 행을 가진 테이블을 의미한다고 생각합니다. 데이터베이스는 원하는만큼의 행을 가질 수 있습니다. 그러나 각 테이블에 10 개의 행과 1,000 만 개의 테이블이 있다면, 매우, 매우 performant. –
1 억 개의 행을 처리해야하는 경우 PostgreSQL, MSSQL 또는 Oracle으로 이동할 시간입니다. – backslash17