直接使用mysql的explain即可例如你的sql是select*fromtable看效率可以這樣explainselect*fromtable可以看到是否有命中索引,是否需要文件排序,是否需要臨時(shí)表等等。
和平網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,和平網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為和平上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的和平做網(wǎng)站的公司定做!
推薦一個(gè)講解MySQL的好書(shū)-- MySQL是怎樣運(yùn)行的 ,作者是小孩子4919,這是目前為止筆者讀過(guò)的MySQL方面最好的書(shū).
筆者之前翻看過(guò)(MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎)和(高性能MySQL),前者對(duì)InnoDB的技術(shù)要點(diǎn)講解的很深.后者則是流水賬式的介紹MySQL的各個(gè)模塊. 彼時(shí)筆者的背景知識(shí)極為有限:
所以?xún)烧叨疾贿m合.筆者需要的是這樣的一本書(shū)
很幸運(yùn),筆者發(fā)現(xiàn)了 MySQL是怎么運(yùn)行的 ,它達(dá)成了上述需求的90%.如果你跟筆者有類(lèi)似的問(wèn)題,那么讀下這本書(shū)吧!
推薦大家重點(diǎn)閱讀下面章節(jié)
從此跟亂碼say goodbye
了解記錄在內(nèi)存中的結(jié)構(gòu),B+樹(shù)的演變由來(lái),以及為什么要使用索引--沒(méi)有索引就要掃全表呀!
緩沖池提高了性能,也帶來(lái)了問(wèn)題.
做完的事情說(shuō)什么也不能丟失.
第一次聽(tīng)說(shuō)臟寫(xiě)和Read View.看完之后才知道事務(wù)隔離級(jí)別的實(shí)現(xiàn)差異.
祝大家有一個(gè)愉快的閱讀體驗(yàn)~
《MySQL是怎樣運(yùn)行的:從根兒上理解 MySQL》采用詼諧幽默的表達(dá)方式,對(duì)MySQL的底層運(yùn)行原理進(jìn)行了介紹,內(nèi)容涵蓋了使用MySQL的同學(xué)在求職面試和工作中常見(jiàn)的一些核心概念。總計(jì)22 章,劃分為4個(gè)部分。第1部分介紹了MySQL入門(mén)的一些知識(shí),比如MySQL的服務(wù)器程序和客戶(hù)端程序有哪些、MySQL的啟動(dòng)選項(xiàng)和系統(tǒng)變量,以及使用的字符集等。第2部分是本書(shū)后續(xù)章節(jié)的基礎(chǔ),介紹了MySQL的一些基礎(chǔ)知識(shí),比如記錄、頁(yè)面、索引、表空間的結(jié)構(gòu)和用法等。第3部分則與大家在工作中經(jīng)常遇到的查詢(xún)優(yōu)化問(wèn)題緊密相關(guān),介紹了單表查詢(xún)、連接查詢(xún)的執(zhí)行原理,MySQL基于成本和規(guī)則的優(yōu)化具體指什么,并詳細(xì)分析了Explain語(yǔ)句的執(zhí)行結(jié)果。第4部分則是與MySQL中的事務(wù)和鎖相關(guān),介紹了事務(wù)概念的來(lái)源,MySQL是如何實(shí)現(xiàn)事務(wù)的,包括redo日志、undo日志、MVCC、各種鎖的細(xì)節(jié)等。
盡管《MySQL是怎樣運(yùn)行的:從根兒上理解 MySQL》在寫(xiě)作時(shí)參考的MySQL源代碼版本是5.7.22,但是大部分內(nèi)容與具體的版本號(hào)并沒(méi)有多大關(guān)系。無(wú)論是很早之前就已身居MySQL專(zhuān)家的人員,還是希望進(jìn)一步提升技能的DBA,甚至是三五年后才會(huì)入行的“萌新”,本書(shū)都是他們徹底了解MySQL運(yùn)行原理的優(yōu)秀書(shū)
1、首先Win+R組合鍵,輸入cmd。
2、接著輸入mysql用戶(hù)名密碼進(jìn)入命令行狀態(tài)。
3、然后show databases展示所有數(shù)據(jù)庫(kù)。
4、接著use選擇要操作的數(shù)據(jù)庫(kù)。
5、然后show status查看狀態(tài)。
6、最后列出了數(shù)據(jù)庫(kù)所有的屬性,說(shuō)明數(shù)據(jù)庫(kù)已開(kāi)啟。
通過(guò)ps命令查看mysql進(jìn)程即可,執(zhí)行如下命令:
ps -aux|grep mysql
執(zhí)行結(jié)果中看到了mysql進(jìn)程,確定mysql正在運(yùn)行。
mysql 1634 0.0 0.1 13980 1268 ? S Aug11 0:00 [mysqld]
root 6849 0.0 0.0 4816 640 pts/1 S 09:40 0:00 grep mysql
通過(guò)cmd快速啟動(dòng)mysql服務(wù)
1
打開(kāi)電腦的“開(kāi)始”菜單欄,找到“運(yùn)行”,在運(yùn)行框中直接輸入:net
start
mysql。再點(diǎn)擊確定按鈕,如下圖:
2
等上圖中cmd命令框中的顯示完“mysql
服務(wù)正在啟動(dòng)”之后,再找到mysql的界面軟件SQL
yog打開(kāi),就可以直接進(jìn)入了,如下圖:
3
當(dāng)你可以正常查詢(xún)數(shù)據(jù)的時(shí)候就表示你的mysql數(shù)據(jù)庫(kù)服務(wù)是正常運(yùn)行的,也就是表示我們的啟動(dòng)是成功的。
END
通過(guò)cmd快速關(guān)閉mysql服務(wù)
我們這里還是講通過(guò)cmd快速關(guān)閉mysql服務(wù),不必麻煩的跑到電腦的服務(wù)中找出服務(wù)項(xiàng)手動(dòng)關(guān)閉,打開(kāi)電腦的“開(kāi)始”菜單欄,找到“運(yùn)行”,在運(yùn)行框中直接輸入:net
stop
mysql。再點(diǎn)擊確定按鈕,如下圖:
等上圖中cmd命令框中的顯示完“mysql
服務(wù)正在停止”之后,再到我們前面打開(kāi)的SQL
yog中輸入查詢(xún)sql語(yǔ)句會(huì)報(bào)錯(cuò),如下圖:
3
執(zhí)行同樣的SQL語(yǔ)句后報(bào)錯(cuò)信息:MySQL
server
has
gone
away。意思就是mysql的服務(wù)器已經(jīng)被關(guān)閉了。這也就意味著我們關(guān)閉命令正常執(zhí)行了。