2013-05-15 6 views
1

저는 SQL (ite)에 비교적 익숙하지 않습니다. 새로운 프로젝트를 작업하면서 배우고 있습니다. 우리는 하나의 "데이터"테이블에 수백만 트랜잭션 행을 가지고 있습니다. 하나의 필드는 "sessionid"필드입니다.큰 sqlite 테이블을 sessionid 필드로 나눕니다.

지금은 세션 중 활동에 집중하고 싶기 때문에 주로 동일한 세션의 트랜잭션 만 살펴 봐야합니다.

내 직감은 이제 세션별로 데이터베이스를 여러 단일 세션 테이블로 분리하면 항상 단일 세션 ID를 쿼리 한 다음 계속 진행하는 것이 훨씬 빠릅니다. 내 질문 : 그게 맞습니까? 그게 효과를 낼 것입니까?

비록 그렇지 않다면 : 나를 도와 주실 수 있습니다. 어떻게 하나의 "데이터"테이블 행을 많은 세션 특정 테이블로 나눌 수 있었습니까? 게다가 sessionIds를 테이블에 연결시키는 하나의 테이블?

감사합니다.


친구

은 분할 -에 - 테이블 것은 매우 unflexible 것, 내가 대신 빠른 단일 세션에 액세스하는 다른 sessionId가 행에 대한 고유 한 인덱스를 추가하려고한다, 나에게 말했다. 그것에 대한 생각과 최선을 다하는 방법?

답변

0

우선, 성능 병목 현상이 있습니까? 그렇다면 설명하십시오.

세션 당 하나의 표를 사용하면 검색/색인 (INSERT 초)이 빨라질 수 있습니다.

SQLite는 테이블 수에 제한을 두지 않으므로 괜찮습니다.

하루에/일주일에 하나의 테이블을 만드는 것이 더 쉬운 유지 관리를 제공하는 다른 솔루션입니다.

세션이 지속되는 기간에 따라 이것이 가능할 수도 있고 그렇지 않을 수도 있습니다.

관련 : https://stackoverflow.com/a/811862/89771

관련 문제