웹 응용 프로그램을 만들고 데이터베이스 백엔드로 MySQL을 사용하고 있습니다. 내 DB는 결국 일부 테이블에서 1 억 개가 넘는 행처럼 더 커질 것입니다. 그런 큰 테이블에 대해 한 가지만 확인하고 싶었습니다.MySQL 성능
Opt 1. 테이블에 기본 키가 있고 기본 키를 사용하여 쿼리를 작성한다고 가정 해 보겠습니다.하지만 각 사용자 로그인에 대해 100 개의 쿼리를 사용하여 mysql 쿼리를 실행해야합니다.
USERID KEYS
1 {1,2,3,4}
난 사용자의 키를 가져온 다음에 사용자가 로그인, 내가 예를 들어 자신의 북마크 된 사이트를 얻을 필요가있는 경우 각 값을
PRI.KEY Value
1 google
2 yahoo
3 aol
4 windows
를 얻기 위해 기본 키 쿼리를 만들 것입니다. 그래서 두 개의 쿼리를 만들 것입니다 TB_KEYS에서 KEYS를 선택하십시오. 여기서 USERID = 1; 그런 다음 KEYS와 각 키를 구문 분석합니다. TB_VALUES에서 값을 선택하십시오. 여기서 PRI.KEY = (첫 번째 쿼리에서 파싱 한 KEY - i).
옵션 2. 기본 키를 사용하여 쿼리를 작성하지 않지만 사용자 로그인을 위해 쿼리를 거의 실행하지 않아도됩니다.
OPT_TABLE_2
USERID KEY Value
1 1 google
1 2 yahoo
1 3 aol
1 4 windows
OPT_TABLE_2에서
선택 값 여기서 USERID = 1;
어느 옵션이 더 좋을까요 ..?
귀하의 질문에 약간의 의미가 있습니다.당신이 얻으려고하는 일종의 실제 SQL 쿼리를 포함 할 수 있습니까? – Cylindric
사용자가 로그인하면 예를 들어 자신의 북마크 된 사이트를 가져와야합니다. 그래서 첫 번째 접근 방식에서 두 가지 쿼리를 만들 것입니다 : TB_KEYS에서 KEYS를 선택하십시오. 여기서 USERID = 1; 그러면 KEYS와 각 키를 구문 분석합니다. TB_VALUES에서 값을 선택하십시오. 여기서 PRI.KEY = (첫 번째 쿼리에서 파싱 한 KEY - i). –
질문을 수정하여 의견을 업데이트로 게시하지 마십시오 :) 멋진 형식을 얻고 미래의 독자는 단서를 찾기 위해 모든 의견을 검색 할 필요가 없습니다. 왜 JOIN을 사용할 수 없는지 확실하지 않습니다. – Cylindric