2011-01-16 2 views
0

, 즉 많은 스트리밍 데이터를 데이터베이스에 보관하는 데 권장되는 방법은 무엇입니까? 나는 여러 submembers와 클래스가

class structA 
{ 
    double a; 
    double b; 
    structB c; 
} 
class structB 
{ 
    double d; 
    double e; 
} 

무엇 예를 들어, 데이터의 많은 양을 저장하기 위해 데이터베이스에이 클래스를 유지하는 가장 좋은 방법은 스트리밍 재고 데이터? 나중에 데이터를 쿼리 할 수 ​​있도록 LINQ 형식을 사용하여 간단하게 무언가를 원합니다.

내가 돌릴 수있는 방법이 너무 많습니다 (예 : LINQ to SQL)? 엔티티에 대한 LINQ? LINW에서 CSV로? 개체에 대한 LINQ? Microsoft SQL? MySQL은? PostgreSQL? InfiniDB? MongoDB?

+1

데이터의 빈도가 높아서 쓰기가 매우 빠르다는 우려가 있습니까? 모든 데이터베이스가 많은 양의 데이터를 저장하기 때문에 전체적인 데이터의 양은 솔루션을 주도해서는 안되며, 모든 쓰기 기술은 이미 데이터베이스에있는 데이터의 양에 상관없이 대처할 것입니다. –

+1

난 당신이 원하는대로 지속성 및 CSV 파일을 나중에 데이터를 쿼리 할 원하는대로 LINQ 개체를 무시할 것이다 및 아마 LINQ to Entities 귀하의 스키마 나타납니다 것처럼 그것은 너무 잔인합니다. –

답변

2

데이터를 데이터베이스에 빠르게 쓸 수있는 방법을 묻는다면 2 점을 얻습니다.

우선 기본 데이터베이스와 프로그래밍 모델을 선택했다고 가정합니다 (.NET과 MS-SQL을 선택한다고 가정 해 봅시다. LINQ에 대해 언급 했으므로 .NET 환경에 있다고 가정하기 때문에 가장 자연스러운 선택입니다) 가능한 가장 낮은 레벨 쓰기 기술을 사용하십시오. .NET의 경우 LINQ 대신 직접 ADO.NET API를 사용하십시오.

두 번째로, 정말로 빠른 쓰기가 필요한 경우 데이터를 메모리에 버퍼링 한 다음 일괄 쓰기 문을 생성하고 ADO.NET API를 통해 다시 실행할 수 있습니다.

특별히 데이터베이스와 프로그래밍 모델이 중요하지 않다고 생각합니다. 특히 데이터베이스 삽입 속도가 빠르다는 것을 알지 못합니다. 구현 방법에 훨씬 더 의존 할 것으로 예상됩니다. 해결책.

다른 문제를 해결하려면 데이터를 삽입하는 데 LINQ를 사용하지 않는다고해서 데이터를 읽을 때 LINQ를 사용할 수 없다는 것을 의미하지는 않으며 LINQ를 사용하는 것은 읽기 전제 조건이 아닙니다. 나중에 데이터.

마지막으로 LINQ를 사용하려면 LINQ를 사용해보십시오. 충분히 빨라야 할 수도 있습니다. 이는 데이터 스트림이 얼마나 빨리 발생하는지에 달려 있습니다. 테스트 만이 알 수 있습니다.

관련 문제