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