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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/1/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java7优化,七、索引优化分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

SQL性能下降的原因

查詢(xún)語(yǔ)句寫(xiě)的不好

索引失效

關(guān)聯(lián)查詢(xún)太多

服務(wù)器調(diào)優(yōu)及各個(gè)參數(shù)的的設(shè)置(緩沖、線(xiàn)程數(shù)等等)

常見(jiàn)的JOIN查詢(xún)

1、SQL的執(zhí)行順序

手寫(xiě)的順序:

真正機(jī)器執(zhí)行的順序:

2、七種join查詢(xún)

最后兩種語(yǔ)法mysql不支持,但是我們可以用union來(lái)聯(lián)合其他的查詢(xún)結(jié)果來(lái)拼湊出最終結(jié)果。

索引

1、什么是索引?

MySQL官方對(duì)索引的定義為:索引(Index)是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。

也可以簡(jiǎn)單理解為“排好序的快速查找數(shù)據(jù)結(jié)構(gòu)”

數(shù)據(jù)本身之外,數(shù)據(jù)庫(kù)還維護(hù)著一個(gè)滿(mǎn)足特定查找算法的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)以某種方式指向數(shù)據(jù),這樣就可以在這些數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上實(shí)現(xiàn)高級(jí)查找算法,這種數(shù)據(jù)結(jié)構(gòu)就是索引。

一般來(lái)說(shuō)索引本身也很大,不可能全部存儲(chǔ)在內(nèi)存中,因此所以往往以索引文件的形式存儲(chǔ)在磁盤(pán)上。

2、索引的優(yōu)勢(shì)和劣勢(shì)

優(yōu)勢(shì)

提高了數(shù)據(jù)檢索的效率,降低了數(shù)據(jù)庫(kù)的IO成本

降低了數(shù)據(jù)排序的成本,降低了CPU的消耗

劣勢(shì)

實(shí)際上索引也是一張表,該表保存了主鍵與索引字段,并指向?qū)嶓w表的記錄,所以索引列也是要占用空間的

雖然索引大大的提高了查詢(xún)速度,但同時(shí)也會(huì)降低更新表的速度,因?yàn)檫M(jìn)行更新表時(shí),MySQL不僅要保存數(shù)據(jù),還要保存一下索引文件每次更新添加了索引列的字段,都會(huì)調(diào)整因?yàn)楦滤鶐?lái)的鍵值變化后的索引信息

3、索引的分類(lèi)

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

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

復(fù)合索引:即一個(gè)索引包含多個(gè)列

4、基本語(yǔ)法

創(chuàng)建

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

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

如果時(shí)CHAR、VARCHAR類(lèi)型,length可以小于字段實(shí)際長(zhǎng)度,如果是BLOB和TEXT類(lèi)型,必須指定length

刪除

DROP INDEX [indexName] ON table_name

查看

SHOW INDEX FROM table_name

5、哪些情況需要?jiǎng)?chuàng)建索引?

主鍵自動(dòng)建立唯一索引

頻繁作為查詢(xún)條件的字段應(yīng)該創(chuàng)建索引

查詢(xún)中與其他表關(guān)聯(lián)的字段,外鍵關(guān)系建立索引

頻繁更新的字段不合適創(chuàng)建索引

Where條件里用不到的字段不創(chuàng)建索引

在高并發(fā)下傾向創(chuàng)建組合索引

查詢(xún)中排序的字段,排序字段若通過(guò)索引去訪問(wèn)將大大提高排序速度

查詢(xún)中統(tǒng)計(jì)或者分組的字段

6、哪些情況不需要?jiǎng)?chuàng)建索引?

表記錄太少

經(jīng)常增刪改的表

如果某個(gè)數(shù)據(jù)列包含許多重復(fù)的內(nèi)容,為它建立索引就沒(méi)有太大的實(shí)際效果

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。