資料庫操作

2022-04-08 06:27:18 字數 835 閱讀 1077

前段時間接到個任務,要在兩秒內從1000萬條資料中查詢某一條資料是否存在。著實嚇我一跳。1000萬條資料!兩秒!真的可以麼?幸好師傅給指了條明路。可以考慮用表分割槽來實現。雖然不知道表分割槽是什麼,但是最起碼有乙個方向了。然後就開始在網上搜尋表分割槽的資料,看了看網上的資料,差不多都是一些建表分割槽的教程。但是我要建立的表分割槽和例子上又不一樣,需要動態的建立表分割槽,這就難了。搞了半天沒搞好。後來想起來春哥和遊哥提到過以前他們在對資料庫搜尋資料的很慢,然後在資料庫中加了索引以後,搜尋提公升了好幾倍。

好,那就看看索引吧。先是根據資料格式造了1000萬條假資料。然後開始建立表索引。

第一步,在表下面的「索引」右擊選擇 「新建索引」,然後根據自己的需要建立相應的索引。

第二步,更改索引名稱,選擇需要加索引的字段

第三步,根據需要選擇字段

第四步,確定新增索引

好了,索引建立好了。

下面來看看加上索引和不加索引搜尋速度的對比

沒有加索引檢索全表的速度為5秒

加上索引後檢索全表的速度為0.363秒

在學習資料庫的時候就知道有索引,而且索引分為聚集索引和非聚集索引。那麼,索引到底是什麼呢?

拿字典舉例子吧:字典前面的目錄,可以按照拼音和部首去查詢。我們想查詢乙個字,只需要根據拼音或部首查詢就可以快速找到要查的這個漢字了。那麼,字典的目錄就是索引。拼音查詢法就是聚集索引,部首查詢發就是非聚集索引。

看了上面的例子,下面的話就很容易理解了。

聚集搜尋引儲存記錄是物理上連續存在,而非聚集索引是邏輯上的連續,物理儲存並不連續。就像字段,聚集索引是連續的,a後面肯定是b。而非聚集索引就不一定了。

對索引的了解暫時就這麼多,很淺。要想真正的學精,以後還要不斷的加深學習。

資料庫(庫操作)

information schema 虛擬庫,不占用磁碟空間,儲存的是資料庫啟動後的一些引數,如使用者表資訊 列資訊 許可權資訊 字元資訊等 performance schema mysql 5.5開始新增乙個資料庫 主要用於收集資料庫伺服器效能引數,記錄處理查詢請求時發生的各種事件 鎖等現象 my...

資料庫 資料庫基本操作

操作練習 修改表結構 表資料的操作 實現 1 建立表 create table student stu no char 12 not null primary key,stu name varchar 20 not null gender tinyint 1 default1,age tinyint...

資料庫操作

第乙個問題 通常用datareader對像 sqlcommand comm new sqlcommand select count from login where name textbox1.text and password textbox2.text,conn datareader dr co...