我一直在使用數據庫最近和之前,我正在開發不使用數據庫的獨立組件。 隨着所有數據庫的工作,我有幾個問題突然出現。 爲什麼數據庫查詢比從文件中讀取編程語言數據更快?數據檢索 - 數據庫VS編程語言
爲了進一步闡述我的問題 -
假設我有一個名爲Employee表,帶有字段名稱,ID,出生日期,電子郵件和性別。爲了簡單起見,我們還將假定它們都是固定長度的字符串,並且它們沒有任何索引或主鍵或任何其他約束。
想象一下,我們在表中有100萬行數據。在這一天結束時,這個表將被存儲在磁盤上的某個地方。當我在DOB =「12/12/1985」中編寫一個查詢選擇名稱,僱員ID時,DBMS從文件中提取數據,對其進行處理,對其進行過濾並給出結果,該結果是100萬的子集數據行。
現在,假設我在一個平面文件中存儲了相同的1百萬行,每個字段類似地是固定長度的字符串以簡化。數據在磁盤上的文件中可用。 當我使用C++或C或C#或Java編寫程序並執行相同的任務來查找名稱和ID,其中DOB =「12/12/1985」時,我將通過記錄讀取文件記錄並檢查數據如果DOB =「12/12/1985」,如果它匹配,那麼我存儲該行給用戶。
與SQL查詢返回結果的速度相比,通過程序執行此操作的方式太慢了。
我假設DBMS也是用某種編程語言編寫的,而且還有一個解析查詢的額外開銷,而不是。
那麼,在數據庫管理系統中發生什麼事情比通過編程語言更快地檢索數據呢?
如果這個問題在這個論壇上不合適,請刪除,但是請提供一些指針,我可以找到答案。
如果有任何幫助,我使用SQL Server。
緩存,優化是讓Db更快的兩件事情..如果你知道在編程語言中實現,那麼它可能是最好的.. – SenthilPrabhu 2012-04-05 16:03:21