MySQL數(shù)據(jù)庫(kù)優(yōu)化思路與方向是怎樣的,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注重慶網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計(jì),有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及石涼亭等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
一、基礎(chǔ)優(yōu)化
mysql> show status like 'valus'
connections //鏈接參數(shù)
uptime //上線時(shí)間
slow_queries //慢查詢次數(shù)
com_select
com_insert
com_update
com_delete
二、優(yōu)化查詢:
mysql> explain select * from handb.fruits;
+----+-------------+--------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+------+---------------+------+---------+------+------+-------+
| 1 | SIMPLE | fruits | ALL | NULL | NULL | NULL | NULL | 2 | |
+----+-------------+--------+------+---------------+------+---------+------+------+-------+
table查詢表的次數(shù)
possible_keys索引
key當(dāng)前索引
key_len索引長(zhǎng)度
ref一起查詢的列或者常數(shù)
rows必要行數(shù)
Extra詳細(xì)信息
三、索引對(duì)查詢的影響
四、優(yōu)化數(shù)據(jù)庫(kù)結(jié)構(gòu)
1、拆分舊表形成新表
2、增加中間表
五、插入優(yōu)化
1、禁用索引
mysql> alter table book disable keys;
mysql> alter table book enable keys;
2、禁用唯一查詢
mysql> set unique_checks=0 | 1 ; //0關(guān)閉 1開啟
3、禁用外鍵檢查
mysql> set foreign_key_checks=0 | 1
4、禁用自動(dòng)提交
mysql> set autocommit=0 | 1
六、分析檢查優(yōu)化表
mysql> analyze table fruits;
type:status 常態(tài)
info信息 //有重復(fù)信息
note注意 //有null空值
warning警告 //超過(guò)過(guò)慢查詢時(shí)間
error錯(cuò)誤 //表中有錯(cuò)誤選項(xiàng),不可用
七、檢查表
mysql> check table fruits fast;
QUICK:不掃描。不檢查錯(cuò)誤的鏈接。
FAST:只檢查沒有被正確關(guān)閉的表。
CHANGED:只檢查上次檢查后被更改的表和沒有被正確關(guān)閉的表。
MEDIUM:掃描行,以驗(yàn)證被刪除的鏈接是有效的,也可以計(jì)算各行的關(guān)鍵字效驗(yàn)和,并使用計(jì)算出的效驗(yàn)和驗(yàn)證這一點(diǎn)。
EXTENDED:對(duì)每行的所有附件自進(jìn)行一個(gè)全面的關(guān)鍵字查找,這可以確保表示百分百一致的,但是花費(fèi)時(shí)間較長(zhǎng)。
八、mysql服務(wù)器優(yōu)化
緩沖區(qū):希望被更改的數(shù)據(jù)在內(nèi)存中駐留的時(shí)間更長(zhǎng)而產(chǎn)生,主要是保留臟頁(yè)信息在內(nèi)存中。不接受內(nèi)存的管理,但是接受mysql程序的管理。
保證緩沖區(qū)大小:
[mysqld]
query_cache_size=512M
query_cache_type=1 //0表示不適用緩沖區(qū)。
1表示一旦開啟,所有的查詢都將使用緩沖區(qū)。如果不希望從緩沖區(qū)查詢,需要在select語(yǔ)句后增加選項(xiàng)no_sql_cache,表示當(dāng)前查詢不適用緩沖區(qū)查詢。
2表示,只有在查詢的select是增加sql_cache才會(huì)從緩沖區(qū)查找。
key_buffer_size //索引緩沖區(qū)大小。索引緩沖區(qū)的所有線程共享。他的大小取決于內(nèi)存的大小。太大會(huì)導(dǎo)致頻繁換頁(yè),也會(huì)降低系統(tǒng)性能。
table_cache //同時(shí)打開的表的個(gè)數(shù)。越大表示同時(shí)打開的表越多。太大影響系統(tǒng)性能。
sort_buffer_size //排序緩存大小,越大,表示排序速度越快。提高order by和group by的效率默認(rèn)2M
read_buffer_size //每個(gè)表分配的緩沖區(qū)的大小。當(dāng)線程連續(xù)掃描時(shí),才會(huì)使用這個(gè)緩沖區(qū)。
read_md_buffer_size //每個(gè)線程保留的緩沖區(qū)的大小,與上面相似,但是用于特定順序才會(huì)使用。如果出現(xiàn)連續(xù)掃描與讀取,則調(diào)整該參數(shù)。set session read_md_buffer_size = n
innodb_buffer_pool_size //innodb和索引的最大緩存,越大查詢?cè)娇?/p>
max_connections //表示數(shù)據(jù)庫(kù)的最大連接數(shù)。主要浪費(fèi)內(nèi)存大小。(大于系統(tǒng)最大鏈接數(shù),會(huì)死機(jī))
innodb_flush_log_at_trx_commit //表示緩沖區(qū)數(shù)據(jù)什么時(shí)候?qū)懭氲饺罩局校⑶覍⑷罩緦懭氲酱疟P當(dāng)中。該值有三個(gè)值:
0每隔一秒將數(shù)據(jù)寫入日志,再寫入硬盤。不安全,但是速度快
1每次提交事務(wù)的時(shí)候才寫入日志,再寫入硬盤。安全,但是速度慢
2每次提交事務(wù)的時(shí)候?qū)懭肴罩荆扛粢幻雽懭胗脖P。出現(xiàn)故障會(huì)丟失1-2s數(shù)據(jù)。
back_log //表示多少個(gè)請(qǐng)求可以存放在堆棧中。對(duì)TCP/IP的監(jiān)聽列隊(duì)的大小。不接受新請(qǐng)求之前把數(shù)據(jù)放在緩存。只有希望一個(gè)短時(shí)間內(nèi)有很多鏈接,才啟用此值。操作系統(tǒng)的列隊(duì)限制比mysql更大,不能超過(guò),否則無(wú)效。
interactive_timeout //關(guān)閉服務(wù)器鏈接前的等待時(shí)間。
thread_buffer_size //每個(gè)需要排序的線程分配的緩沖區(qū)的大小,如果有很多新的線程,可以調(diào)高這個(gè)值。
wait_timeout //服務(wù)器關(guān)閉一個(gè)鏈接所等待的時(shí)間s,默認(rèn)28800
看完上述內(nèi)容,你們掌握mysql數(shù)據(jù)庫(kù)優(yōu)化思路與方向是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站標(biāo)題:mysql數(shù)據(jù)庫(kù)優(yōu)化思路與方向是怎樣的
文章分享:http://chinadenli.net/article38/gsggsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、App開發(fā)、移動(dòng)網(wǎng)站建設(shè)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)