데이터로 채워진 M 행렬이있는 경우 빠른 쿼리를 위해 SQL 테이블에 저장하는 가장 좋은 방법은 무엇입니까? 3 열 테이블 (X, Y, Z) 총 MN 행을 저장하거나 N 열로 간단히 M 행을 저장할 수 있습니다. N은 수백에서 수천의 순서이며, M은 훨씬 더 클 수 있습니다. 쿼리가 알려진 열 이름을 기반으로 빌드 될 수 있기 때문에 두 번째 방법은 쿼리에 더 빠르다고 생각합니다. 그러나 테이블에 여러 개의 열을 배치하는 것이 좋습니다. 덕분에SQL 테이블에 M by N 행렬을 저장하는 권장 방법은 무엇입니까
5
A
답변
7
두 번째 옵션 (N 개의 열)은 컴파일 타임에 알 수없는 열의 값을 선택하는 것을 어렵게 만듭니다. 선택을 생성하는 데는 역동적 인 힘이 필요합니다. 그래서 나는 테이블 (X, Y, 값)을 가지고 (x, y)를 기본 키로 만들 것입니다.
2
테이블이 모든 RDBMS에 가질 수있는 최대 열 수에 제한이 있습니다. 예를 들어, SQL Server 2008
은 비 와이드 테이블의 경우 최대 1.024 열을, 넓은 테이블의 경우 최대 30.000 열을 갖습니다. Oracle
은 1.000 열 최대 값을 갖습니다 (해당 제한이 변경되는지는 확실하지 않지만). 따라서 첫 번째 옵션을 권하고 싶습니다. 실제로 열 제한이 없어도이 옵션을 선택했을 것입니다.
관련 문제
- 1. n Hibernate order by N by SQL Server
- 2. 테이블에 데이터를 저장하는 방법은 무엇입니까? (SQL Server)
- 3. listView.setSelection (n); m = listView.getSelectedItemPosition(); // m! = n. 왜?
- 4. <n 개의 테이블에 n-gram을 데이터베이스에 저장하는 경우
- 5. m * n 행렬의 동일성
- 6. M : N relation in sql table
- 7. 주어진는 M × N 보드에
- 8. n * n 행렬을 트래버스하는 c 프로그램
- 9. MATLAB에서 루프를 사용하지 않고 행렬의 각 m-by-m 창에서 n 요소를 추출하려면 어떻게합니까?
- 10. SQL Server 테이블에 태그를 저장하는 가장 좋은 방법은 무엇입니까?
- 11. Squeryl에서 추가 속성과 m : n 관계를 정의하는 방법은 무엇입니까?
- 12. 라텍스 : \ frontmatter의 m 페이지 n, \ mainmatter의 m 페이지 m
- 13. mysql 테이블에 다른 언어를 저장하는 방법은 무엇입니까?
- 14. 배열의 값을 테이블에 저장하는 방법은 무엇입니까?
- 15. M 개의 트랙이있는 N 마리의 랭킹을 결정하는 방법은 무엇입니까?
- 16. Postgres : n : m 유형이 중간 인 표
- 17. 3Nx3N 행렬에 N^2 3x3 행렬을 연결
- 18. N : M 관계 및 레코드 삭제
- 19. m : n- 관계에 대해 MySQL과 함께 사용해야하는 인덱스는 무엇입니까?
- 20. SQL 테이블에 값 집합을 저장하는 방법
- 21. 그룹의 SQL 그룹 by by?
- 22. MATLAB에서 행렬을 샘플링하는 방법은 무엇입니까?
- 23. 두 개의 java.sql.Date가 잘 리면 데이터베이스 테이블에 저장하는 방법은 무엇입니까?
- 24. 1에서 N까지의 요소 (matlab)를 사용하여 1 행 N 행렬을 만드는 방법은 무엇입니까?
- 25. 합계를 얻기 위해 SQL JOIN, GROUP BY 세 테이블에
- 26. n-m 테이블에서 쿼리를 정의하는 방법
- 27. m : n 관계를 두 번 매핑하는 중
- 28. matlab의 행렬 변경 (m x n)
- 29. 월 N 번째 주 N 번째 SQL
- 30. MySQL 경고를 데이터베이스에 저장하는 방법은 무엇입니까?
동의합니다 - 하나의 테이블, X, Y 및 값이 가장 깨끗한 방법입니다. 이것은 N 차원으로 쉽게 확장 될 수 있습니다. –