久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL的調(diào)優(yōu)思路和實際操作

134次閱讀
沒有評論

共計 3238 個字符,預(yù)計需要花費 9 分鐘才能閱讀完成。

這篇文章主要講解了“MySQL 的調(diào)優(yōu)思路和實際操作”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL 的調(diào)優(yōu)思路和實際操作”吧!

調(diào)優(yōu)思路:

1. 設(shè)計與規(guī)劃 – 以后再修該很麻煩,估計數(shù)據(jù)量,使用什么存儲引擎

2. 數(shù)據(jù)的應(yīng)用 – 怎樣取數(shù)據(jù),sql 語句的優(yōu)化

3. 服務(wù)優(yōu)化 – 內(nèi)存的使用,磁盤的使用

4. 操作系統(tǒng)的優(yōu)化 – 內(nèi)核、tcp 連接數(shù)量

5. 升級硬件設(shè)備

磁盤 io 規(guī)劃

raid 技術(shù):raid0[xfs]

swap 分區(qū):最好使用 raid0

磁盤分區(qū):一個庫放到一個分區(qū)上或一個磁盤上

物理分區(qū)

create table t1(id int,name char(20)) data directory= /data/ index directory = /data

mkdir /data

chown mysql.mysql /data

mysql show variables like %part%

4. 操作系統(tǒng)的優(yōu)化

網(wǎng)卡 bonding 技術(shù),

tcp 連接數(shù)量限制

優(yōu)化系統(tǒng)打開文件的最大限制

關(guān)閉操作系統(tǒng)不必要的服務(wù)

5.mysql 服務(wù)優(yōu)化

show status  看系統(tǒng)的資源

show variables  看變量,在 my.cnf 配置文件里定義的

show warnings  查看最近一個 sql 語句產(chǎn)生的錯誤警告,看其他的需要看.err 日志

show processlist 顯示系統(tǒng)中正在運行的所有進程。

show errors

啟用 mysql 慢查詢:— 分析 sql 語句,找到影響效率的 SQL

log-slow-queries=/var/lib/mysql/slow.log 這個路徑對 mysql 用戶具有可寫權(quán)限

long_query_time=2  查詢超過 2 秒鐘的語句記錄下來

上面的 2 是查詢的時間,即當(dāng)一條 SQL 執(zhí)行時間超過 5 秒的時候才記錄,/var/lib/mysql/slow.log 是日志記錄的位置。

然后重新啟動 MySQL 服務(wù)

對查詢進行緩存

query_cache_size 使用多大內(nèi)存來緩存查詢語句 [+8M]

mysql show variables like %query%

query_cache_size=8M

[root@st mysql]# vim /etc/my.cnf

mysql show status like %Qcache%

Qcache_free_blocks:說明緩存太大了。緩存中相鄰內(nèi)存的個數(shù)。數(shù)目大說明可能有碎片。FLUSH QUERY CACHE 會對緩存中的碎片進行整理,從而得到一個空閑塊。[+8M]

Qcache_free_memory 緩存中的空閑內(nèi)存

Qcache_hits 每次查詢在緩存中命中時就增大

Qcache_inserts 每插入一個查詢時就增大。命中次數(shù)除以插入次數(shù)就是命中率。

Qcache_lowmen_prunes 緩存出現(xiàn)內(nèi)存不足并且必須要進行清理以便為更多查詢提供空間的次數(shù)。這個數(shù)字最好長時間看;如果這個數(shù)字在不斷增長就表示可能碎片非常嚴(yán)重,或者內(nèi)存很少

Qcache_hits/Qcache_inserts 命中率

關(guān)鍵字緩沖區(qū)

mysql show status like %key%

mysql show variables like key_buffer_size

key_buffer_size  指定索引緩沖區(qū)的大小,它決定索引處理的速度,尤其是索引讀的速度。[+8M]

key_read_requests  請求總數(shù)

key_reads  代表命中磁盤的請求個數(shù)

(key_read_requests-key_read)/key_read_requests:命中率

key_buffer_size 只對 MyISAM 表起作用。即使你不使用 MyISAM 表,但是內(nèi)部的臨時磁盤表是 MyISAM 表,也要使用該值??梢允褂脵z查狀態(tài)值 created_tmp_disk_tables 得知詳情。

對于 1G 內(nèi)存的機器,如果不使用 MyISAM 表,推薦值是 16M(8-64M)。

臨時表空間大?。簅rder by 和 group by 時把數(shù)據(jù)放到臨時表里。

tmp_table_size  占的是內(nèi)存的大小,如果太小在排序時會出錯

created_tmp_tables  創(chuàng)建臨時表的數(shù)量

max_tmp_tables=32

tmpdir=/tmp  硬盤上臨時表所在的位置

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

innodb 表:

創(chuàng)建表空間文件

[mysqld]

innodb_data_file_path=ibdata1:10M:autoextend

這個設(shè)置配置一個可擴展大小的尺寸為 10MB 的單獨文件,名為 ibdata1。沒有給出文件的位置,所以默認(rèn)的是在 MySQL 的數(shù)據(jù)目錄內(nèi)。

如果你對最后的數(shù)據(jù)文件指定 autoextend 選項。如果數(shù)據(jù)文件耗盡了表空間中的自由空間,InnoDB 就擴展數(shù)據(jù)文件。擴展的幅度是每次 8MB。

要為一個自動擴展數(shù)據(jù)文件指定最大尺寸,請使用 max 屬性。下列配置允許 ibdata1 漲到極限的 500MB:

[mysqld]

innodb_data_file_path=ibdata1:10M:autoextend:max:500M

InnoDB 默認(rèn)地在 MySQL 數(shù)據(jù)目錄創(chuàng)建表空間文件。要明確指定一個位置,請使用 innodb_data_home_dir 選項。比如,要使用兩個名為 ibdata1 和 ibdata2 的文件,但是要把他們創(chuàng)建到 /ibdata,像如下一樣配置 InnoDB:

[mysqld]

innodb_data_home_dir = /ibdata

innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend

mysql show variables like innodb_buffer_pool_size

innodb_buffer_pool_size

對于 InnoDB 表來說,innodb_buffer_pool_size 的作用就相當(dāng)于 key_buffer_size 對于 MyISAM 表的作用一樣。InnoDB 使用該參數(shù)指定大小的內(nèi)存來緩沖數(shù)據(jù)和索引。對于單獨的 MySQL 數(shù)據(jù)庫服務(wù)器,最大可以把該值設(shè)置成物理內(nèi)存的 80%。

根據(jù) MySQL 手冊,對于 2G 內(nèi)存的機器,推薦值是 1G(50%)。

mysql show variables like innodb_%per% [建議打開]

innodb_file_per_table =1 為每一個表單獨創(chuàng)建一個表空間文件。

其他參數(shù)

skip-locking

取消文件系統(tǒng)的外部鎖,減少出錯幾率增強穩(wěn)定性

skip-name-resolve

關(guān)閉 mysql 的 dns 反查功能。這樣速度就快了!

選項就能禁用 DNS 解析,連接速度會快很多。不過,這樣的話就不能在 MySQL 的授權(quán)表中使用主機名了而只能用 ip 格式。

wait_timeout=10 終止空閑時間超過 10 秒的鏈接,避免長連接[默認(rèn) 8 個小時]

max_connect_errors=10 //10 次連接失敗就鎖定,使用 flush hosts 解鎖,

或 mysqladmin flush-hosts 解鎖

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SQL 語句調(diào)優(yōu):

explain 命令:查詢 select。

.type

這列很重要, 顯示了連接使用了哪種類別, 有無使用索引

從最好到最差的連接類型為 const、eq_reg、ref、range、indexhe 和 ALL

感謝各位的閱讀,以上就是“MySQL 的調(diào)優(yōu)思路和實際操作”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 MySQL 的調(diào)優(yōu)思路和實際操作這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-28發(fā)表,共計3238字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 日照市| 会东县| 微博| 中山市| 阿拉善右旗| 呼图壁县| 隆安县| 宁陵县| 东山县| 卢龙县| 剑河县| 寻乌县| 吐鲁番市| 宣恩县| 玉溪市| 舒兰市| 宁德市| 德阳市| 南皮县| 武川县| 隆安县| 罗山县| 瓦房店市| 晴隆县| 应城市| 鹤峰县| 元江| 高要市| 精河县| 沅陵县| 同心县| 新密市| 古蔺县| 普定县| 手机| 奈曼旗| 和田县| 葫芦岛市| 澜沧| 晴隆县| 平武县|