SQL查詢如何工作? 它如何被編譯? 是否首先編譯from
子句以查看該表是否存在? 它如何從數據庫中實際檢索數據? 如何以及以什麼格式存儲在數據庫中?SQL查詢如何工作?
我正在使用phpmyadmin,有沒有什麼辦法可以窺探數據存儲的文件? 我正在使用MySQL
SQL查詢如何工作? 它如何被編譯? 是否首先編譯from
子句以查看該表是否存在? 它如何從數據庫中實際檢索數據? 如何以及以什麼格式存儲在數據庫中?SQL查詢如何工作?
我正在使用phpmyadmin,有沒有什麼辦法可以窺探數據存儲的文件? 我正在使用MySQL
嗯......
查詢分析器,順便說一句,你看到了巨大的差異。不確定MySQL - SQL Server(微軟)發現它沒有最好的一個(但是其中一個很好),但它確實有很好的可視化工具來顯示查詢計劃,比較分析器的估計值真正的需求(如果他們的表格統計信息太多,可能會關閉,因此分析器THINKS大表格很小)。他們在視覺上表現得很好。
DB2在一段時間內擁有了一個優秀的優化器,我已經說過 - 我們已經說過 - 盤片速度可以用於估算。甲骨文很長一段時間「從左到右」(沒有真正的分析),並採取用戶提供的查詢提示(垃圾方法)。我認爲MySQL一開始也非常原始 - 不確定它現在在哪裏。
數據庫中的表格格式等 - 這真的是你不應該關心的東西。這是記錄(顯然,特別是對於開源數據庫),但爲什麼你應該關心?我已經完成了近15年的SQL工作,從來沒有這樣的需求。這包括在一些領域做相當高端的工作。除非你嘗試建立一個數據庫文件修復工具....它是沒有意義的打擾。
這裏有一些很好的信息。謝謝。 – Learning 2010-03-18 08:08:17
@TomTom謝謝,正如你所說我不需要擔心表格格式,但我真的想知道它出於好奇。如果我要設計一個Db,也許我會將我的表存儲在csvs中,並且會說strictfg處理來檢索數據,但我只是想知道別人怎麼做? – 2010-03-18 08:33:43
絕對不是那樣;)真的 - CSV是可笑的低效率。 SQL Server(我唯一知道的細節)使用8kb頁面中的一個文件,它具有自己的管理結構來定義頁面包含的內容。有索引頁面,數據頁面等等,爲了達到SOMEHOW的效率,它確實很複雜 - 一個CSV文件將會非常低效。 – TomTom 2010-03-18 08:41:59
這是一個很好的問題,但在這裏不能完全解答。
您可以閱讀Understanding MySQL Internals
這本書,它將爲您解答大部分問題。
這是一個很大的問題! – 2010-03-18 07:47:48
本身並不是一個答案,但這是它在Oracle中的高級別工作方式。 http://www.idevelopment.info/data/Oracle/DBA_tips/Tuning/TUNING_10.shtml – JavaRocky 2010-03-18 07:57:25
你能提供你打算的特定產品嗎? SQL Server,MySQL,Oracle等? – 2010-03-18 08:02:17