여기에 새 프로젝트를 시작하면 많은 양의 사용자 데이터를 저장하게 될 것입니다. 나는 처음부터 확장 가능한 시스템을 만들기 위해 각 사용자의 데이터 (본질적으로 그들이 저장 한 파일 목록)를 별도의 SQLite 데이터베이스에 저장하는 새로운 아이디어를 고려하고있다. 사용자 ID를 가진 MySQL의 거대한 테이블. 파일 목록에는 파일과 관련된 다른 메타 데이터가 저장되므로 파일 시스템을 사용하는 것만으로는 옵션이 아닙니다.MySQL에 비해 사용자 당 개별 SQLite 데이터베이스?
사용자가 로그인하여 파일을 볼 때 MySQL이 "파일"테이블의 모든 레코드를 하나씩 꺼내기보다는 모든 SQLite 데이터베이스에 모든 데이터를 표시하는 것이 더 빠를 것이라고 생각했습니다. ID로 사용자의 파일. 각 사용자는 쉽게 10,000 이상의 항목을 가지며 처음에는 최소 400 명의 사용자가 있습니다. 그래서 10,000 개의 행을 가진 400 개의 개별 SQLite 데이터베이스 또는 400 만 개의 단일 MySQL 테이블? 400 명의 사용자가 거의 동시에 로그인하는 경우는 거의 없으며 데이터베이스가 색인 된 경우에도 데이터베이스에없는 사용자의 데이터를 처리해야하는 것은 비효율적 인 것처럼 보입니다.
SQLite의 최대 제한은 잠금이지만 운좋게도이 경우에는 데이터베이스에 쓰는 단일 프로세스 만 있으므로 여기서 문제가되어서는 안됩니다. 개별적인 SQLite 데이터베이스를 백업하는 추가 된 관리는 모두 증분 파일 시스템 백업의 일부가 될 것이기 때문에 사소한 것입니다.
생각하십니까? 의견? 이 생각을 끝내고 있습니까?
데이터베이스에 쓰는 단일 프로세스가 있는지 어떻게 확인합니까? 사용자가 두 개의 탭을 열었 으면 어떻게 될까요? – miki
miki, SQLite에서 처리 할 수 있습니다. –
안녕하세요 Miki - 사용자가 인터페이스를 통해 파일을 추가하거나 수정할 수 없습니다. 파일은 외부 소스의 사용자에게 "푸시 (push)"되며 그 모든 것은 단일 야간 프로세스로 수행됩니다. –