溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql有哪些比較高級的用法

發(fā)布時間:2020-05-18 16:10:48 來源:PHP中文網(wǎng) 閱讀:248 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家簡單講講mysql有哪些比較高級的用法,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望mysql有哪些比較高級的用法這篇文章可以給大家?guī)硪恍嶋H幫助。                                                           

1、mysql的配置文件。

在windows中是my.ini文件:

1)、log-bin:表示主從復(fù)制的日志文件,用于主從復(fù)制。

2)、log-error="SO3JFYNN8EW6GMO.err":表示錯誤日志。

3)、server-id=1:表示本機(jī)的序號為1。

4)、datadir=D:/mysql5.7/Data:存放數(shù)據(jù)庫信息的目錄,

2、mysql的架構(gòu)從上到下分成四層:
1)、連接層:連接處理,授權(quán)認(rèn)證,相關(guān)的安全方案。

2)、服務(wù)層:完成sql的優(yōu)化,分析,緩存等功能。

3)、引擎層:負(fù)責(zé)存儲和提取數(shù)據(jù)。

4)、存儲層:數(shù)據(jù)存儲層,主要將數(shù)據(jù)存儲在文件系統(tǒng)之中,并完成與引擎的交互。

3、mysql引擎

1)查看使用的引擎:

show engins或者show

MYISAM和INNODB的比較

不支持主外鍵值對;支持

不支持事務(wù);支持

表鎖,不適合高并發(fā);行鎖,適合高并發(fā)

只緩存索引;緩存索引和數(shù)據(jù),對內(nèi)存要求更高

表空間小;表空間大

關(guān)注點在性能,更多情況下適合查詢多的情況;關(guān)注點事務(wù)。

4、mysql性能優(yōu)化下降原因

1)、查詢語句寫的爛

2)、索引失效

單值索引

create  index  idx_user_name   on user(name)

復(fù)合索引

create  index  idx_user_name_email  on user(name,email)

3)、查詢有太多的join

4)、云服務(wù)器調(diào)優(yōu)及各個參數(shù)

5、mysql的執(zhí)行順序

機(jī)器從from開始讀。

1)、內(nèi)連接

select  *from  tableA  A  inner join  tableB B  on  A.key=B.key。

2)、左外連接

select  *from  tableA  A   left  join   tableB B  on A.key= B.key

當(dāng)b沒有的,用null補全。

3)、右外連接

select   *from  tableA   A   right  join   tableB  B  on   A.key=B.key

當(dāng)a沒有時,用null補全

4)、左外連接,去除右表部分

select   *from  tableA  A    left  join    tableB  B   on   A.key=B.key  where   B.key is null

a的獨有,這此時b的用null補齊,所以此時b是為空的。

5)、右外連接,去除左表部分

select  *from  tableA A  right  join  tableB  B   on A.key = B.key  where A.key  is null

6)、全連接(可以采用兩者相加)union 可以組合并去重

select   *from tableA A left join tableB B   on   A.key=B.key  union

(select *from tableA  A  right join tableB B )

7)、中心空出來

select   *from tableA A left join tableB B   on   A.key=B.key  where B.key is null union

(select *from tableA  A  right join tableB B  on   A.key=B.key  where A.key is null)

6、什么是索引

1)、索引是一種數(shù)據(jù)結(jié)構(gòu),在于提高查找效率。

排好順序的快速查找數(shù)據(jù)結(jié)構(gòu)。

數(shù)據(jù)庫維護(hù)著滿足特定算法的數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)以

某種方式指向數(shù)據(jù),這樣可以在這些數(shù)據(jù)結(jié)構(gòu)上實現(xiàn)高級的超找

算法,這種數(shù)據(jù)結(jié)構(gòu)稱為索引。

BTREE索引(沒有特殊指定的情況下)

頻繁刪改的字段,不適合建索引。

2)、優(yōu)勢

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

通過索引列對數(shù)據(jù)進(jìn)行 排序,降低數(shù)據(jù)排序的成本,降低了cpu的消耗

3)、劣勢

索引也是一張表,占磁盤空間。

更新表時要維護(hù)索引,會降更新效率。

索引只是一個提高效率的因素,建立索引需要花時間和精力。

4)、單值索引,只包含一個列,一張表可以有多個單值索引。

5)、唯一索引,索引列的值必須唯一,允許為空。

6)、復(fù)合索引,包含多個列。

7)、索引的相關(guān)操作

create   index  idx_user_name on user(name)

alter  user  add index  idx_user_name on (name)

show index from user

drop index idx_user_name on user

8)、索引結(jié)構(gòu)

Hash索引

full-text全文索引

R-Tree 索引

BTree索引 :

7、哪些情況要創(chuàng)建索引:

1)、主建自動建立唯一索引

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

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

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

5)、where條件里用不到的字段補創(chuàng)建索引。

6)、單建或者組合索引的選擇問題,在高并發(fā)下傾向于創(chuàng)建復(fù)合索引

7)、查詢中排序的字段,排序的字段如果按照索引去訪問,將提高效率

8)、查詢中統(tǒng)計或者分組字段

8、哪些情況不需要創(chuàng)建索引:

1)、表記錄太少

2)、經(jīng)常增刪的表

3)、數(shù)據(jù)重復(fù)且分布平均的字段。

9、性能分析:

mysql query optimizer

mysql有哪些比較高級的用法就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI