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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java7优化,七、索引优化分析

發布時間:2024/1/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java7优化,七、索引优化分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL性能下降的原因

查詢語句寫的不好

索引失效

關聯查詢太多

服務器調優及各個參數的的設置(緩沖、線程數等等)

常見的JOIN查詢

1、SQL的執行順序

手寫的順序:

真正機器執行的順序:

2、七種join查詢

最后兩種語法mysql不支持,但是我們可以用union來聯合其他的查詢結果來拼湊出最終結果。

索引

1、什么是索引?

MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取數據的數據結構。

也可以簡單理解為“排好序的快速查找數據結構”

數據本身之外,數據庫還維護著一個滿足特定查找算法的數據結構,這些數據結構以某種方式指向數據,這樣就可以在這些數據結構的基礎上實現高級查找算法,這種數據結構就是索引。

一般來說索引本身也很大,不可能全部存儲在內存中,因此所以往往以索引文件的形式存儲在磁盤上。

2、索引的優勢和劣勢

優勢

提高了數據檢索的效率,降低了數據庫的IO成本

降低了數據排序的成本,降低了CPU的消耗

劣勢

實際上索引也是一張表,該表保存了主鍵與索引字段,并指向實體表的記錄,所以索引列也是要占用空間的

雖然索引大大的提高了查詢速度,但同時也會降低更新表的速度,因為進行更新表時,MySQL不僅要保存數據,還要保存一下索引文件每次更新添加了索引列的字段,都會調整因為更新所帶來的鍵值變化后的索引信息

3、索引的分類

單值索引:即一個索引只包含單個列,一個表可以有多個單值索引

唯一索引:索引列的值必須唯一但允許有空值

復合索引:即一個索引包含多個列

4、基本語法

創建

CREATE [UNIQUE] INDEX indexName ON table_name(columnname(length))

ALTER table_name ADD [UNIQUE] INDEX indexName ON (columnname(length))

如果時CHAR、VARCHAR類型,length可以小于字段實際長度,如果是BLOB和TEXT類型,必須指定length

刪除

DROP INDEX [indexName] ON table_name

查看

SHOW INDEX FROM table_name

5、哪些情況需要創建索引?

主鍵自動建立唯一索引

頻繁作為查詢條件的字段應該創建索引

查詢中與其他表關聯的字段,外鍵關系建立索引

頻繁更新的字段不合適創建索引

Where條件里用不到的字段不創建索引

在高并發下傾向創建組合索引

查詢中排序的字段,排序字段若通過索引去訪問將大大提高排序速度

查詢中統計或者分組的字段

6、哪些情況不需要創建索引?

表記錄太少

經常增刪改的表

如果某個數據列包含許多重復的內容,為它建立索引就沒有太大的實際效果

總結

以上是生活随笔為你收集整理的java7优化,七、索引优化分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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