1. 程式人生 > >sql加索引和刪除索引,提高效率等

sql加索引和刪除索引,提高效率等

資料庫:mssql2008

測試資料量:150萬條

新增索引:CREATE INDEX   索引名稱    ON  表名(列) WITH(ONLINE=ON)

刪除索引:drop index 索引名稱  on  表名
查尋索引: select * from sys.indexes where name='索引名稱';

公司 裡邊做了一個專案,起實並沒有太過於在意,按照正常的sql寫的,但當資料量大之後,問題來了。

最初的時候,用的是阿里雲的輕雲伺服器,當資料到100多萬條的時候,速度也還是可以的,但後來隨意資料量的增加,輕雲伺服器只有1g的空間,是不能滿意的,後來沒有辦法更換到阿里雲的rds,rds啊,價格好貴的,但效果沒有想想的那麼好,感覺還不如阿里雲自帶的,速度那叫慢啊,好神奇的慢,諮詢售後,為什麼自帶資料庫比RDS還要快,後來的答案是具體問題具體分析。。,我了個去,不過RDS也有一個好處,就是可以檢視那些sql執行的慢。。經過分析,隨著資料量的增加,加上索引是比較好的,後來沒有辦法,加上索引,加上索引後測試SQL   語句確實快了好些倍,如圖 :
1.沒有加過引之間需要的時間:


2.加過引之間需要的時間:




大家可以做一下對比,這二個圖片所用的時間上差別還是蠻大的,效率是不言而明的,但在這裡我需要說明的是我只在record_cpmid這個鍵上加了索引的,聯合查詢的其它列,並沒有加,有網上查了一些文件,說是加過索引之後,新增資料會比較慢,後來,我測試了一下,同時新增1000條的情況下,好象沒什麼區別,可能是我只添加了一個索引的原因,如果過多的新增,是很可能造成影響資料的新增的。

我想問一下,大家對索引的使用是怎麼看的,比如:
1.在新增少量索引的情況下是否影響資料的新增。
2.索引的維護這一塊,大家都是怎麼理解的。

如果大家對索引這一塊,不太明白,可以建立索引後,在查詢分析裡邊試下,看看是不是執行時間有變化