日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库索引实验

發布時間:2024/8/1 数据库 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库索引实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上周客戶的系統有一個網頁反應超級緩慢,最后幫客戶定位到原因是sql慢查詢,在這兒簡單總結一下。

當數據庫中的數據量非常大的時候,數據庫訪問的速度會越來越慢,cpu和內存消耗變大,影響用戶體驗,可以通過創建索引來解決。

我做了一個實驗驗證了一下,效果非常明顯。

首先創建了一個數據表,通過腳本插入了1400w條數據(腳本跑了一晚上);

之后通過一個字段(非主鍵)進行查詢


結果如上圖所示,查詢用時近10秒,這個速度確實是非常慢了。

之后我再給“property”這個字段創建索引

create index pindex on property(property);

之后再進行相同的操作,結果如下:


這次耗時幾乎為0

實驗證明創建索引的確能非常明顯的增加查詢性能


索引工作原理其實很簡單,如果通過某個字段(非主鍵)進行查詢,此時數據庫會進行全表掃描,非常消耗資源。創建索引后,數據庫會把創建索引的這個字段拿出來,重新分配資源建立索引,就像一本書的目錄一樣。

創建索引后,sql執行的時候會自動判斷該字段有沒有索引。

索引分:唯一索引、非唯一索引、主鍵索引、聚集索引。

創建非唯一索引的方法:

create index index_name on table_name(colunm_name);

查看索引的方法:

show index from table_name;

刪除索引的方法:

drop index index_name on table_name;


當然索引也是有弊端的,索引會降低插入數據的效率,因為每次增刪改數據的時候同時也需要創建一份索引的數據結構,增加了資源消耗,另外索引也是需要占用一部分磁盤空間的。


除了創建索引之外,還有其它一些方法可以在一定程度上降低sql慢查詢。

1.避免全表查詢的操作;

2.避免使用select * from 的操作,需要什么字段就查什么字段;

3.避免使用!= 、in、not in、or、like等不確定查詢的語句;

4.避免在sql語句where之前進行計算的查詢;

?



總結

以上是生活随笔為你收集整理的数据库索引实验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。