搜尋
首頁資料庫mysql教程mysql的一些進階用法

mysql的一些進階用法

May 10, 2018 am 10:06 AM
mysql用法

當我們掌握了Mysql的基本操作,例如建表語句,簡單的sql語句等,我們還可以對mysql本身做一些設定操作,甚至是對Mysql進行最佳化。更多mysql進階知識請移步php中文網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          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#o#o#o#ofo#ocoo# . 。

3)、右外連接

          select   *from  tableA   A   right  join   tableB  B  on  A.key=B.key#ull# 全補時使用全補時,使用全補時,使用全補時,B.key#.

4)、左外連接,移除右表部份

          select   *from  tableA  A    left  join    tableB B  ##           a的獨有,此時b的以null補齊,所以此時b是為空的。

5)、右外連接,移除左表部份

           select  *from  tableA A  right  join  tableB  B   on A.key = B.key) 問題 n. ##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)、中心空出來

## .key=B.key  where B.key is null union

           (select *from tableA  A  right join tableB B  on   A.key=B.key #bhere A。

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 indexindex 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進階的知識,希望對大家有幫助。

相關文章:

mysql基本語法

#掌握PHP MySQL Where 子句

以上是mysql的一些進階用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
mysql blob:有什麼限制嗎?mysql blob:有什麼限制嗎?May 08, 2025 am 12:22 AM

mysqlblobshavelimits:tinyblob(255bytes),blob(65,535 bytes),中間佈洛布(16,777,215個比例),andlongblob(4,294,967,967,295 bytes).tousebl觀察:1)考慮pperformance impactsandSandStorLageBlobSextern; 2)管理backbackupsandreplication carecration; 3)usepathsinst

MySQL:自動化用戶創建的最佳工具是什麼?MySQL:自動化用戶創建的最佳工具是什麼?May 08, 2025 am 12:22 AM

自動化在MySQL中創建用戶的最佳工具和技術包括:1.MySQLWorkbench,適用於小型到中型環境,易於使用但資源消耗大;2.Ansible,適用於多服務器環境,簡單但學習曲線陡峭;3.自定義Python腳本,靈活但需確保腳本安全性;4.Puppet和Chef,適用於大規模環境,複雜但可擴展。選擇時需考慮規模、學習曲線和集成需求。

mysql:我可以在斑點內搜索嗎?mysql:我可以在斑點內搜索嗎?May 08, 2025 am 12:20 AM

是的,YouCansearchInIdeAblobInMysqlusingsPecificteChniques.1)轉換theblobtoautf-8StringWithConvertFunctionWithConvertFunctionandSearchUsiseLike.2)forCompresseBlysBlobs,useuncompresseblobs,useuncompressbeforeconversion.3)expperformance impperformance imptactSandDataEcoding.4)

MySQL字符串數據類型:綜合指南MySQL字符串數據類型:綜合指南May 08, 2025 am 12:14 AM

mysqloffersvariousStringDatatYpes:1)charforfixed Lengtth Strings,IdealforConsistLengthDatalikeCountryCodes; 2)varcharforvariable長度長,合適的forfieldslikenames; 3)texttypefesforepesforlargertext,forforlargertext,goodforforblogblogpostsbutcan impactcuctcuctcuctpercrance; 4)biland;

掌握mysql blobs:逐步教程掌握mysql blobs:逐步教程May 08, 2025 am 12:01 AM

tomasterMysqlblobs,關注台詞:1)ChooseTheApprProbType(tinyBlob,blob,blob,Mediumblob,longblob)基於dongatasize.2)InsertDatausingload_fileforefice.3)

MySQL中的BLOB數據類型:開發人員的詳細概述MySQL中的BLOB數據類型:開發人員的詳細概述May 07, 2025 pm 05:41 PM

blobdatatypesinmysqlareusedforvorvoringlargebinarydatalikeimagesoraudio.1)useblobtypes(tinyblobtolonglongblob)基於dondatasizeneeds。 2)庫孔素pet petooptimize績效。 3)考慮Xternal Storage Forel Blob romana databasesizerIndimprovebackupe

如何將用戶從命令行添加到MySQL如何將用戶從命令行添加到MySQLMay 07, 2025 pm 05:01 PM

toadDuserStomySqlfromtheCommandline,loginasroot,thenusecreateuser'username'@'host'host'Indessifiedby'password'; tocreateanewuser.grantpermissionswithgrantprantallprivilegesondatabase

MySQL中有哪些不同的字符串數據類型?詳細的概述MySQL中有哪些不同的字符串數據類型?詳細的概述May 07, 2025 pm 03:33 PM

mySqlofferSeightStringDatateTypes:char,varchar,二進制,二進制,varbinary,blob,文本,枚舉,枚舉和set.1)長度,理想的forconsistentDatatalIkeCountryCodes.2)varcharisvariable長度,長度,效率foriforitifforiticforiticforiticforiticforiticforitic forvaryingdatalikename.3)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器