2013-01-22 2 views
0

짧은 스토리 : java/flash 업 로더를 다운로드했으며 파일 중 하나가 .db였습니다. 몇 가지 조사를 한 후에 그 데이터베이스를 발견했습니다. 어떤 질문을했다. 다른 서버 및 SQL 쿼리에 의존하지 않고 데이터베이스 (.db) 파일을 만들어 루트 디렉토리의 폴더에 저장할 수 있습니까? 따라서 이론적으로 로컬 파일에만 액세스하여 웹 사이트를 빠르게 할 수 있습니다.오프라인 데이터베이스를 보유 할 수 있습니까?

문제점 : 많은 연구를 수행했지만 아무런 답이 없습니다. 주로 전에 나는이 문제를 다루지 않았기 때문에 생각합니다. 그래서 어디를보아야할지 모르겠습니다.

질문 : 그런 일에 대해 들어 본 적이 있습니까? 그렇다면 튜토리얼 웹 사이트를 참조하거나 이것이 어떻게 작동하고 파일간에 어떤 통신 언어 유형을 사용하는지에 대한 간단한 정의/설명/예를 제공 할 수 있습니까? SQL? 다른 것? 나는 단지 모른다!

도움 주셔서 감사합니다.

+0

나는 sqlite를 사용하는 것이 좋습니다. 로컬 파일 데이터베이스를 사용하며 속도를 높이는 것이 가장 쉽습니다. 그러나 이것이 사물의 속도를 높이는 것에주의 깊게 생각하십시오. –

+0

[SQLite] (http://sqlite.org/)에 "hello"라고 말하십시오. – salathe

+0

데이터베이스가 동일한 서버에있는 경우 기본적으로 루트 디렉터리의 하위 폴더에 데이터가 저장됩니다. 클라이언트 측이나 PHP 파일이있는 위치에 데이터를 저장하고 싶다는 뜻입니까? – Sebas

답변

1

[좋은 부분] 이론적으로, 그래, 당신은 그것을 할 수 있습니다. 한 예가 sqlite database입니다. 이 데이터베이스는 원하는 곳에 저장할 수있는 단일 파일입니다. PHP로 코딩하는 경우이 데이터베이스에 액세스/쿼리하려면 PHP와 함께 해당 확장을 설치해야합니다.

[나쁜 부분] 당신은 적은 양의 데이터를 처리하는 경우 에만 의미가 당신의 쿼리는 비교적 간단하다. Sqlite 데이터베이스는 느리고 제한된 SQL 작업 집합 만 지원합니다. 또한 많은 표준 데이터 유형을 지원하지 않으며 의존 할 수있는 내장 함수가 많지 않습니다. 스탠드 얼론 앱 (예 : 로컬 데이터가있는 모바일 애플리케이션)에서 간단한 데이터베이스 지원을 원한다면 Sqlite 데이터베이스는 매우 유용하지만 대용량의 트랜잭션 데이터를 저장하는 데는 그리 좋지 않습니다.

[판결] 아마 당신은 단지 당신의 응용 프로그램을 방해 할 sqlite가에 적절한 데이터베이스로 전환, 웹 응용 프로그램의 속도를 찾고 있다면, 그것은 도움이되지.

+0

답변 해 주셔서 감사합니다. 그것은 모두가 나에게 말하고있는 것으로 보인다. 내가 가지고있는 데이터베이스를 고수하고 속도 병목 현상을 찾으려고하는 것 같습니다. – Chaky31

+2

친구는 주석없이 친구에게 downvote를 허용하지 않습니다. – jbabey

+0

@pure_code 귀하의 의견이 무엇을 의미하는지 모르겠습니다. 필요에 따라 sqlite를 클라이언트 또는 서버에 둘 수 있습니다. 모두 필요에 따라 다릅니다. –

1

SQLlite는 서버를 사용하지 않고도 작동하는 데이터베이스를 제공 할 수 있습니다. reguar SQL 서버 (MySQL 등)와 함께 사용하는 표준 SQL 인터페이스를 제공합니다. 표준 데이터베이스 서버보다 훨씬 많은 디스크 I/O에 의존하므로 더 빠를 것입니다.

+0

빠른 응답을 보내 주셔서 감사합니다. 내 연구에서 SQLlite를 보았지만 mySQL과 동일한 것으로 생각했습니다. 나는 그것을 살펴볼 것이다. 그러나 그것이 속도 증가를 제공하지 않는다면, 그것을 사용하는 것에 어떤 이점도없는 것처럼 보인다. 아마 mySQL 데이터베이스를 고수 할 것입니다. – Chaky31

+0

메모리 액세스가 디스크 액세스보다 빠릅니다. MySQL 서버가 적절하게 설정되고 쿼리와 테이블이 최적화되면 MySQL의 성능이 크게 향상됩니다. – datasage

+0

@datasage 두 가지 모두 "메모리 내 데이터베이스"를 제공하기 때문에 make와 이상한 비교가됩니다. – salathe

-1

SQlite은 서버리스입니다. 그것은 잘 문서화되어 있습니다. PHP는 extension도 가지고 있습니다. 그러나 실제로 속도를 높이려면 memcached, redis, MongoDB 등을보아야합니다.

0

내가 정말로 묻는 이유는 플랫 파일 데이터베이스입니다.

http://www.databasedev.co.uk/flatfile-vs-rdbms.html

+0

.db 파일에서 찾은 것 같습니다. 하지만 그 링크에서 보냈습니다. 꽤 쓸모없는 것 같습니다. 나는 내가 그들에게서 떨어져있을 것이라고 생각한다. – Chaky31

0

이름을 지정할 수있는 거의 모든 데이터베이스 솔루션은 파일을 저장소 메커니즘으로 사용하므로 데이터를 파일에 저장하는 것만으로는 응용 프로그램에 고유 한 성능 보너스가 전달되지 않습니다. SQLite와 같은 서버가없는 데이터베이스가 존재하지만 성능을 고려해야 할 이유는 거의 없으며 이식성이 그다지 중요하지 않습니다.

MySQL 또는 다른 데이터베이스의 로컬 인스턴스를 실행하여 over-the-wire 전송 비용을 없앨 수 있습니다. MySQL이 온 - 디스크 스토리지뿐 아니라 온 - 메모리 스토리지에 의존하기 때문에, 대부분의 경우 SQLite와 같은 성능을 적절하게 구성하면 성능이 우수합니다.

이런 종류의 것들에 익숙하지 않은 것처럼 들리므로, 이러한 조기 성능 최적화에 대해 걱정하려고 노력하는 것에 대해주의해야합니다. 아마도 웹 서버와 동일한 서버에서 전통적인 관계형 데이터베이스 (예 : MySQL)로 시작하십시오.

다른 서버로 데이터베이스를 분리해야하는 곳 (데이터베이스 또는 웹 응용 프로그램에 더 많은 리소스를 할당하거나 여러로드를 허용 할 수있는 충분한 트래픽이있는 지점에 이르면 균형 잡힌 웹 응용 프로그램 서버가 단일 백엔드 데이터베이스와 통신하는 경우) 이러한 종류의 성능 조정에 대해 걱정할 필요가 있습니다.

+0

고맙습니다. 소통량은 지금 나의 관심사가 아니다. 이미 다른 서버에 설치되어 실행중인 mySQL 데이터베이스가 있습니다. 나는 웹 사이트의 단 두 부분 만이 SQL 데이터베이스에서 폴더의 위치를 ​​가져 와서 행당 4 개를 표시하고 앨범별로 구성하는 간단한 갤러리이기 때문에 대안을 조사하고있었습니다. 또한 자바 스크립트와 PHP를 사용하여 올바르게 설정하고 SQL 데이터베이스에서 이벤트를 가져와 올바른 날짜에 넣는 달력이 있습니다. 둘 다 끔찍하게 느리게 움직이고 있습니다. 나는 문제가 데이터베이스와 같지 않다고 생각한다. – Chaky31

+0

@KyleRoseberry 문제는 데이터베이스 및/또는 쿼리와 관련이 있습니다. 당신의 쿼리가 올바르게 생성 된 인덱스를 활용하는지 확인해야합니다. MySQL 서버에 충분한 리소스가 할당되어 있는지 확인해야합니다 (힌트 : 메모리 구성과 관련하여 기본 MySQL 구성은 종종 끔찍하게 구성됩니다). 따라서 인덱스를 메모리에 유지하는 등의 작업을 수행해야합니다. 문제가있는 쿼리가있는 경우 개선을 위해 별도의 질문을 열어야합니다. –

0

클라이언트가있는 컴퓨터와 동일한 컴퓨터에서 서버를 실행하는 것 같습니다. 물론 가능합니다.

장점은 여전히 ​​SQL과 심지어 네트워크 프로토콜을 사용하지만 동일한 컴퓨터에 자체적으로 포함된다는 것입니다. 나중에 프로덕션 환경으로 전환하면 구성이 최소한으로 변경됩니다.

실제로 네트워크를 사용하지 않지만 대신 메모리에서 모든 네트워크 호출을 수행합니다. 이는 매우 빠르게 실행되며 좋은 개발 환경입니다.

관련 문제