2017-04-23 57 views
0

我瞭解到B +樹用於實現RDBMS,現在我想用C/C++實現RDBMS,我已閱讀了B +樹並且還看到了SQLite。RDBMS B +樹索引如何用於選擇查詢

我的搜索查詢是如何工作的數據庫的概念疑問,我們存儲(鍵,值)B +樹的,現在說我有一個表

與列{ID,姓名,電話,地址}

我必須用phone ='xyz'搜索記錄,數據庫如何使用B +樹來有效地獲取該記錄。

完成O(N)搜索記錄或優化?

回答

1

它如果你沒有索引。
is optimized如果你有一個索引。

+0

實現可支持所有列的優化的優化版本的最佳方法是什麼? ,這樣可以優化任何列上的搜索 – praveen

+0

多個B樹索引或全文索引。 –

+0

謝謝,SQL如何回收查詢,如 name ='abcd'和phone ='xyz',SQL是否使用多個b-tree或全文索引。 我只想在C/C++中做一個SQL項目,所以想得到一些有關如何實際上搜索查詢有效地回收值的想法。 – praveen

0

平均情況O(logb(N))

最差情況爲O(n)

A B +樹是blanced樹,它特別的作品更像是二叉搜索樹在MYSQL。其實施可以變化。