2010-03-18 7 views
20

SQL 쿼리는 어떻게 작동합니까? 어떻게 컴파일됩니까? 테이블이 존재하는지 확인하기 위해 from 절이 먼저 컴파일 되었습니까? 실제로 데이터베이스에서 데이터를 검색하는 방법은 무엇입니까? 데이터베이스에 저장된 테이블의 형식과 형식은 무엇입니까?SQL 쿼리는 어떻게 작동합니까?

나는 phpmyadmin을 사용하고 있습니다. 데이터가 저장된 파일을 들여다 볼 수있는 방법이 있습니까? 나는 MySQL을 사용하고있다

+9

큰 질문입니다. –

+0

답변이 없지만 오라클의 높은 수준에서 작동하는 방식입니다. http://www.idevelopment.info/data/Oracle/DBA_tips/Tuning/TUNING_10.shtml – JavaRocky

+0

의도 한 특정 제품을 제공 할 수 있습니까? SQL 서버, MySQL, 오라클 등? –

답변

10

음 ...

  • 먼저 당신은 식 트리의 생성 다음에 문법 체크를,이 -이 단계에서 당신은 또한 요소가 존재 여부를 테스트하고 (즉, 필드가 존재 "줄"수 테이블 안에). 이것이 첫 번째 단계입니다. 여기에 오류가 있으면 제출자에게 사실을 알리십시오.
  • 그러면 요 분석이 있습니다. SQL 질의는 프로그램과 다른 점은 무엇인가를 수행하는 방법을 말하지 않고, 결과가 무엇인지를 말합니다. 기반 논리를 설정합니다. 따라서이 결과에 가장 잘 접근 할 수있는 방법을 결정하기 위해 쿼리 분석기를 사용할 수 있습니다 (제품 성능에 따라 오라클의 오랜 시간이 모자라 지요. DB2는 디스크 속도를 측정하는 데 가장 민감합니다). 이것은 정말 복잡한 짐승입니다. 그는 수십 수백 가지 방법을 사용하여 그가 가장 빠르다고 믿는 것을 찾을 수 있습니다 (비용 기반, 기본적으로 일부 통계).
  • 그러면 실행됩니다.

그런데 쿼리 분석기는 큰 차이점을 보게됩니다. MySQL에 대해 잘 모르겠다 - SQL Server (Microsoft)는 최고의 제품 (그러나 좋은 제품 중 하나)이 없다는 점에서 빛나지만, 쿼리 계획을 보여줄 수있는 훌륭한 시각적 도구를 갖추고 있으며 분석기의 예상치를 실제 요구 사항 (테이블 통계가 너무 다를 경우 분석기가 대형 테이블이 작다고 생각할 수 있습니다). 그들은 그것을 시각적으로 멋지게 선물합니다.

DB2는 오랜 시간 동안 최적화 된 옵티 마이저를 가지고있었습니다. 이미 말했듯이 디스크 속도가 예상치에 포함됩니다. 오라클은 오랫동안 "좌 우에서 우로"(실제 분석이 없었 음)하고 사용자가 제공 한 쿼리 힌트 (쓰레기 접근법)를 사용했습니다. 나는 MySQL이 초기 단계에서도 매우 원시적이었다고 생각한다.

데이터베이스의 테이블 형식 등 - 실제로는 신경 쓰지 않아도됩니다. 이것은 분명히 (특히 오픈 소스 데이터베이스의 경우) 문서화되어 있지만, 왜 신경 써야합니까? 나는 거의 15 년 동안 SQL 작업을 해왔으며 결코 그 필요성을 느끼지 못했습니다. 그리고 그것은 일부 영역에서 매우 높은 수준의 작업을 수행하는 것을 포함합니다. 데이터베이스 파일 복구 도구를 만들지 않으면 .... 신경 쓰지 않아도됩니다.

+0

여기에 멋진 정보가 있습니다. 감사. – Learning

+0

@TomTom 감사합니다. 테이블 형식에 대해 걱정할 필요는 없지만 호기심에서 정말 알고 싶습니다.아마도 Db를 디자인한다면 csvs에 테이블을 저장하고 strinfg 처리로 데이터를 검색한다고 말할 수 있습니다.하지만 다른 사람들이 어떻게했는지 알고 싶었습니까 ?? –

+0

분명히 그 것을 좋아하지 않는다;) 정말로 - CSV는 어리석게 비효율적이다. SQL Server (세부 사항 만 알고있는 경우)는 8KB 페이지의 파일을 사용하며 페이지에 포함 된 내용을 정의하는 자체 관리 구조를 사용합니다. 인덱스 페이지, 데이터 페이지 등이 있습니다. 다소 효율적이기 위해서는 훨씬 더 복잡합니다. CSV 파일은 대단히 비효율적입니다. – TomTom

4

이것은 좋은 질문이지만 여기에서 완전히 대답 할 수는 없다.

대부분의 질문에 대한 답변을 제공하는 Understanding MySQL Internals 책을 읽을 수 있습니다.

1

대상 제품이 SQL Server 인 경우 this article을 시작하는 것이 좋습니다.

+0

@thanks가 들여다 볼 것입니다 !! –