項(xiàng)目中常用的19條mysql優(yōu)化技巧 如何使用phpMyadmin優(yōu)化MySQL數(shù)據(jù)庫(kù)?
如何使用phpMyadmin優(yōu)化MySQL數(shù)據(jù)庫(kù)?PhpMyadmin只是一個(gè)數(shù)據(jù)庫(kù)管理工具,它應(yīng)該與Mysql數(shù)據(jù)庫(kù)優(yōu)化松散耦合。讓 下面簡(jiǎn)單說(shuō)一下MySql數(shù)據(jù)庫(kù)的幾個(gè)優(yōu)化點(diǎn):1.優(yōu)化SQL語(yǔ)句,
如何使用phpMyadmin優(yōu)化MySQL數(shù)據(jù)庫(kù)?
PhpMyadmin只是一個(gè)數(shù)據(jù)庫(kù)管理工具,它應(yīng)該與Mysql數(shù)據(jù)庫(kù)優(yōu)化松散耦合。讓 下面簡(jiǎn)單說(shuō)一下MySql數(shù)據(jù)庫(kù)的幾個(gè)優(yōu)化點(diǎn):
1.優(yōu)化SQL語(yǔ)句,例如使用select * from...盡可能少,可以有效節(jié)省網(wǎng)絡(luò)IO,縮短查詢時(shí)間,增加Mysql服務(wù)器的吞吐量。
比如你需要選取最近一個(gè)月的數(shù)據(jù),數(shù)據(jù)量比較大;將它分成10個(gè)請(qǐng)求可能會(huì)好得多,每個(gè)請(qǐng)求選擇三天。
比如用join做表連接的時(shí)候,盡量用小表驅(qū)動(dòng)大表,簡(jiǎn)單來(lái)說(shuō)就是左join,左表就是驅(qū)動(dòng)表。右連接右表是驅(qū)動(dòng)表;內(nèi)連接mysql會(huì)自動(dòng)優(yōu)化它。
學(xué)會(huì)使用
Linux上MySQL優(yōu)化提升性能哪些可以優(yōu)化的關(guān)閉NUMA特性?
Linux上的MySQL優(yōu)化提高了性能,可以優(yōu)化和關(guān)閉。NUMA的特點(diǎn)如下:
這些其實(shí)都是源于CPU的最新技術(shù):節(jié)能模式。操作系統(tǒng)與CPU硬件協(xié)同工作。當(dāng)系統(tǒng)不忙的時(shí)候,為了省電降溫,會(huì)降低CPU頻率。
為了保證MySQL能夠充分利用CPU資源,建議將CPU設(shè)置為最大性能模式。此設(shè)置可以在BIOS和操作系統(tǒng)中設(shè)置。當(dāng)然,在BIOS中設(shè)置這個(gè)選項(xiàng)更好更徹底。
那么讓我們 讓我們看看內(nèi)存,看看我們可以優(yōu)化什么。
I)let ;讓我們先看看numa。
Numa(非統(tǒng)一內(nèi)存訪問(wèn))也是最新的內(nèi)存管理技術(shù)。它對(duì)應(yīng)于SMP(對(duì)稱多處理器)。是的。
我們可以直觀的看到,SMP訪問(wèn)內(nèi)存的代價(jià)是一樣的,但是在NUMA架構(gòu)下,訪問(wèn)本地內(nèi)存和非本地內(nèi)存的代價(jià)是不一樣的。相應(yīng)的,根據(jù)這個(gè)特性,在操作系統(tǒng)上,我們可以設(shè)置進(jìn)程的內(nèi)存分配。當(dāng)前的支持方法包括:
-交錯(cuò)節(jié)點(diǎn)
- membindnodes
- cpunodebindnodes
-物理處理器
- localalloc
-首選節(jié)點(diǎn)
簡(jiǎn)而言之,您可以指定在本地、在某些CPU節(jié)點(diǎn)或通過(guò)輪詢來(lái)分配內(nèi)存。除非將其設(shè)置為- interleavenodes輪詢分配模式,也就是說(shuō),可以在任何NUMA節(jié)點(diǎn)上分配內(nèi)存。在其他方面,即使其他NUMA節(jié)點(diǎn)上有內(nèi)存剩余,Linux也不會(huì)將剩余的內(nèi)存分配給這個(gè)進(jìn)程,而是使用SWAP來(lái)獲取內(nèi)存。
最簡(jiǎn)單的方法就是關(guān)閉這個(gè)功能。
關(guān)閉該功能有兩種方法:可以從BIOS、操作系統(tǒng)、啟動(dòng)進(jìn)程臨時(shí)關(guān)閉該功能。
a)由于各種BIOS類型的差異,如何關(guān)閉NUMA千差萬(wàn)別,所以我們贏了 這里不具體展示如何設(shè)置它。
b)當(dāng)它在操作系統(tǒng)中關(guān)閉時(shí),可以直接在的內(nèi)核行末尾添加numaoff,如下所示:
kernel/vmlinuz-2 . 6 . 32-220 . el6 . x86 _ 64 ro root/dev/mapper/vol group-root rd _ NO _ LUKS。UTF-8 rd _ LVM _ LVVolGroup/root rd _ NO _ MD quiet SYSFONTlatarcyrheb-sun 16 rhgb crash kernel auto rd _ LVM _ LVVolGroup/swap rhgb crash kernel auto quiet keyboard type PC KEYTABLEus rd _ NO _ DM numa off
此外,您可以設(shè)置_reclaim_mode0來(lái)盡可能多地回收內(nèi)存。
c)啟動(dòng)MySQL時(shí),關(guān)閉NUMA功能:
numatl-interleave all mysqld
當(dāng)然,最好的辦法是在BIOS中關(guān)閉。
ii)Let ;讓我們?cè)賮?lái)看看vm.swappiness。
Vm.swappiness是操作系統(tǒng)控制物理內(nèi)存交換的策略。允許的值是百分比值,最小值為0,最大值為100。默認(rèn)值為60。將vm.swappiness設(shè)置為0意味著盡可能少的sw。Ap,100表示盡可能多地交換非活動(dòng)內(nèi)存頁(yè)。
具體來(lái)說(shuō),當(dāng)內(nèi)存基本滿的時(shí)候,系統(tǒng)會(huì)根據(jù)這個(gè)參數(shù)來(lái)判斷是交換內(nèi)存中很少使用的非活動(dòng)內(nèi)存,還是釋放數(shù)據(jù)緩存。