您好,登錄后才能下訂單哦!
本文主要給大家簡單講講mysql有哪些比較高級的用法,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望mysql有哪些比較高級的用法這篇文章可以給大家帶來一些實際幫助。
1、mysql的配置文件。
在windows中是my.ini文件:
1)、log-bin:表示主從復制的日志文件,用于主從復制。
2)、log-error="SO3JFYNN8EW6GMO.err":表示錯誤日志。
3)、server-id=1:表示本機的序號為1。
4)、datadir=D:/mysql5.7/Data:存放數據庫信息的目錄,
2、mysql的架構從上到下分成四層:
1)、連接層:連接處理,授權認證,相關的安全方案。
2)、服務層:完成sql的優化,分析,緩存等功能。
3)、引擎層:負責存儲和提取數據。
4)、存儲層:數據存儲層,主要將數據存儲在文件系統之中,并完成與引擎的交互。
3、mysql引擎
1)查看使用的引擎:
show engins或者show
MYISAM和INNODB的比較
不支持主外鍵值對;支持
不支持事務;支持
表鎖,不適合高并發;行鎖,適合高并發
只緩存索引;緩存索引和數據,對內存要求更高
表空間小;表空間大
關注點在性能,更多情況下適合查詢多的情況;關注點事務。
4、mysql性能優化下降原因
1)、查詢語句寫的爛
2)、索引失效
單值索引
create index idx_user_name on user(name)
復合索引
create index idx_user_name_email on user(name,email)
3)、查詢有太多的join
4)、云服務器調優及各個參數
5、mysql的執行順序
機器從from開始讀。
1)、內連接
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
當b沒有的,用null補全。
3)、右外連接
select *from tableA A right join tableB B on A.key=B.key
當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)、索引是一種數據結構,在于提高查找效率。
排好順序的快速查找數據結構。
數據庫維護著滿足特定算法的數據結構,這種數據結構以
某種方式指向數據,這樣可以在這些數據結構上實現高級的超找
算法,這種數據結構稱為索引。
BTREE索引(沒有特殊指定的情況下)
頻繁刪改的字段,不適合建索引。
2)、優勢
提高數據檢索的效率,降低數據庫的io成本
通過索引列對數據進行 排序,降低數據排序的成本,降低了cpu的消耗
3)、劣勢
索引也是一張表,占磁盤空間。
更新表時要維護索引,會降更新效率。
索引只是一個提高效率的因素,建立索引需要花時間和精力。
4)、單值索引,只包含一個列,一張表可以有多個單值索引。
5)、唯一索引,索引列的值必須唯一,允許為空。
6)、復合索引,包含多個列。
7)、索引的相關操作
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)、索引結構
Hash索引
full-text全文索引
R-Tree 索引
BTree索引 :
7、哪些情況要創建索引:
1)、主建自動建立唯一索引
2)、頻繁作為查詢條件的字段應該創建索引
3)、查詢中與其他表關聯的字段,外建關系建立索引。
4)、頻繁更新的字段,不適合創建索引
5)、where條件里用不到的字段補創建索引。
6)、單建或者組合索引的選擇問題,在高并發下傾向于創建復合索引
7)、查詢中排序的字段,排序的字段如果按照索引去訪問,將提高效率
8)、查詢中統計或者分組字段
8、哪些情況不需要創建索引:
1)、表記錄太少
2)、經常增刪的表
3)、數據重復且分布平均的字段。
9、性能分析:
mysql query optimizer
mysql有哪些比較高級的用法就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。