2010-03-18 36 views
20

Truy vấn SQL hoạt động như thế nào? Làm cách nào để được biên dịch? Điều khoản from được biên dịch trước để xem bảng có tồn tại không? Làm cách nào để truy xuất dữ liệu từ cơ sở dữ liệu? Các bảng được lưu trữ trong cơ sở dữ liệu theo định dạng nào?truy vấn SQL hoạt động như thế nào?

Tôi đang sử dụng phpmyadmin, có cách nào để tôi có thể nhìn vào các tệp nơi dữ liệu được lưu trữ không? Tôi đang sử dụng MySQL

+9

Đó là một câu hỏi lớn! –

+0

Không phải là câu trả lời cho mỗi người, nhưng đây là cách nó hoạt động ở mức cao trong Oracle. http://www.idevelopment.info/data/Oracle/DBA_tips/Tuning/TUNING_10.shtml – JavaRocky

+0

Bạn có thể cung cấp sản phẩm cụ thể mà bạn dự định không? SQL Server, MySQL, Oracle, v.v. –

Trả lời

10

Vâng ...

  • Trước tiên, bạn phải kiểm tra cú pháp, tiếp theo là việc tạo ra một cây biểu hiện - ở giai đoạn này bạn cũng có thể kiểm tra xem các yếu tố tồn tại và "xếp hàng" (tức là các lĩnh vực có tồn tại TRONG bảng). Đây là bước đầu tiên - bất kỳ lỗi nào ở đây bất kỳ bạn chỉ yêu cầu người gửi thực hiện.
  • Sau đó, yo có .... phân tích. Một truy vấn SQL khác với một chương trình ở chỗ nó không nói LÀM THẾ NÀO để làm điều gì đó, chỉ là NHỮNG KẾT QUẢ LÀ GÌ. Đặt logic dựa. Vì vậy, bạn nhận được một bộ phân tích truy vấn trong (tùy thuộc vào sản phẩm xấu để tốt - oracle dài thời gian mũ crappy những người, DB2 những người nhạy cảm nhất ngay cả đo tốc độ đĩa) để quyết định cách tốt nhất để tiếp cận kết quả này. Đây là một con thú thực sự phức tạp - nó có thể thử hàng chục hoặc hàng trăm phương pháp tiếp cận để tìm một người mà ông tin là nhanh nhất (dựa trên chi phí, về cơ bản một số thống kê).
  • Sau đó, việc đó sẽ được thực thi.

Trình phân tích truy vấn, bằng cách này, là nơi bạn thấy sự khác biệt lớn. Không chắc chắn về MySQL - SQL Server (Microsoft) tỏa sáng ở chỗ nó không có cái tốt nhất (nhưng một trong những cái tốt), nhưng nó thực sự có các công cụ trực quan đẹp để HIỂN THỊ kế hoạch truy vấn, so sánh các ước tính của máy phân tích nhu cầu thực sự (nếu chúng khác nhau quá nhiều bảng thống kê có thể được tắt để phân tích THINKS một bảng lớn là nhỏ). Họ trình bày trực quan một cách độc đáo.

DB2 có trình tối ưu hóa tuyệt vời trong một khoảng thời gian, đo - tôi đã nói - tốc độ đĩa để đưa nó vào ước tính của nó. Oracle đã đi "trái sang phải" (không phân tích thực) trong một thời gian dài, và đưa ra gợi ý truy vấn do người dùng cung cấp (cách tiếp cận crap). Tôi nghĩ rằng MySQL là VERY nguyên thủy quá trong đầu - không chắc chắn nơi nó là bây giờ.

Định dạng bảng trong cơ sở dữ liệu, v.v. - đó thực sự là điều bạn không nên quan tâm. Đây là tài liệu (rõ ràng, đặc biệt là cho một cơ sở dữ liệu mã nguồn mở), nhưng tại sao bạn nên quan tâm? Tôi đã thực hiện công việc SQL trong gần 15 năm hoặc lâu hơn và không bao giờ có nhu cầu đó. Và điều đó bao gồm làm công việc kết thúc khá cao ở một số khu vực. Trừ khi bạn cố gắng xây dựng một công cụ sửa chữa tập tin cơ sở dữ liệu .... nó không có ý nghĩa để làm phiền.

+0

một số thông tin thú vị tại đây. cảm ơn. – Learning

+0

@TomTom cảm ơn, như bạn nói tôi không cần phải bận tâm về các định dạng bảng nhưng tôi thực sự muốn biết điều đó từ sự tò mò.Nếu tôi đã thiết kế một Db có lẽ tôi sẽ lưu trữ các bảng của tôi trong csvs và làm nói chế biến strinfg để lấy dữ liệu, nhưng tôi chỉ muốn biết làm thế nào những người khác đã làm nó ?? –

+0

chắc chắn không thích điều đó;) Thực sự - CSV cực kỳ không hiệu quả. SQL Server (chỉ tôi biết các chi tiết) sử dụng một tập tin trong các trang 8kb với cấu trúc quản lý riêng của nó xác định những gì trang chứa. Có các trang chỉ mục, các trang dữ liệu, vv nó thực sự là một LOT phức tạp hơn để được SOMEHOW hiệu quả - một tập tin CSV wold được terribly không hiệu quả. – TomTom

4

Đây là câu hỏi hay nhưng không thể trả lời được hoàn toàn tại đây.

Bạn có thể đọc sách Understanding MySQL Internals sẽ cung cấp cho bạn câu trả lời cho hầu hết các câu hỏi của bạn.

1

Nếu sản phẩm mục tiêu của bạn là SQL Server, thì this article là một nơi tốt để bắt đầu.

+0

@thanks sẽ xem xét !! –

Các vấn đề liên quan