1.1 mysql體系結(jié)構(gòu):
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、做網(wǎng)站與策劃設(shè)計(jì),三元網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:三元等地區(qū)。三元做網(wǎng)站價(jià)格咨詢:18982081108
連接池
sql接口
分析器
優(yōu)化器
查詢緩存
存儲(chǔ)引擎
文件系統(tǒng)
管理工具
1.2 永久定義:
修改配置文件/etc/my.cnf
[mysql]
變量名=值
1.3 臨時(shí)定義:
mysql>set (global) 變量=
2.1 訪問數(shù)據(jù)時(shí),出結(jié)果特別慢。分析可能是由哪些原因?qū)е碌模?/p>
(1)硬件配置低:查看應(yīng)用設(shè)備的使用率CPU 內(nèi)存 存儲(chǔ)(硬盤)
利用top,sar,uptime,free等;
(2)網(wǎng)絡(luò)帶寬: 使用網(wǎng)絡(luò)測(cè)速軟件 網(wǎng)速;
(3)提供數(shù)據(jù)庫(kù)服務(wù)軟件版本低:
2.2 并發(fā)及連接控制
mysql> show variables like “max_connections”; #允許的最大并發(fā)連接數(shù)
mysql> show variables like "connect_timeout"; #建立連接時(shí),三次握手的超時(shí)時(shí)間
mysql> show variables like "wait_timeout"; #建立連接后,等待斷開連接的超時(shí)時(shí)間
查看當(dāng)前已使用的連接數(shù):
mysql>show global status like “max_used_connections”;
查看默認(rèn)的最大連接數(shù):
mysql> show variables like "max_connections";
理想比率:已使用的連接數(shù)/連接并發(fā)量<=85%
2.3 緩存參數(shù)控制
key_buffer_size #用于myisam引擎的關(guān)鍵索引緩存大小
sort_buffer_size #為每個(gè)要排序的線程分配此大小的緩存空間
read_buffer_size #為順序讀取表記錄保留的緩存大小
read_rnd_buffer_size #為排序結(jié)果讀取表記錄保留的緩存大小
允許重復(fù)使用的線程的數(shù)量
mysql> show variables like "thread_cache_size";
為所有線程緩存打開表的數(shù)量。
table_open_cache=2000
mysql> show variables like "table_open_cache";
查詢緩存相關(guān)參數(shù)設(shè)置?
MySQL> show variables like "query_cache%";
查詢緩存寫鎖有效 存儲(chǔ)引擎(MYISAM)
query_cache_wlock_invalidate | OFF
query_cache_type 0|1|2
0 關(guān)閉 不存儲(chǔ)
1 開啟 無條件存儲(chǔ)
2 開啟 指定存儲(chǔ)才存儲(chǔ)
查詢緩存統(tǒng)計(jì)信息?
MySQL> show global status like "qcache%";
Qcache_hits 0 #查詢緩存成功的次數(shù)(就是在緩存中找到查詢的結(jié)果)
Qcache_inserts 0 #總的
Qcache_lowmem_prunes 0 #每次緩存達(dá)到一定數(shù)值,重新清空的次數(shù),清空的次數(shù)越大代表緩存的使用不合理(總是被用完)
2.4 Mysql日志類型
(1)錯(cuò)誤日志:記錄數(shù)據(jù)庫(kù)服務(wù)在啟動(dòng)和運(yùn)行過程中產(chǎn)生的信息,默認(rèn)啟用
/etc/my.cnf中的log-error=/var/log/mysqld.log
(2)binlog日志:默認(rèn)沒有啟用。
(3)查詢?nèi)罩荆河涗浰袌?zhí)行過的SQL命令,默認(rèn)沒有啟用
vim /etc/my.cnf
[mysqld]
general-log #默認(rèn)存儲(chǔ)位置 /var/lib/mysql
默認(rèn)名稱:主機(jī)名.log
(4)慢查詢?nèi)罩荆河涗洺^指定時(shí)間顯示查詢結(jié)果的SQL命令。默認(rèn)超時(shí)時(shí)間10s。
slow-query-log #啟用慢查詢?nèi)罩?/p>
slow-query-log-file=文件名 #指定日志名稱
long-query-time=數(shù)字 #指定超時(shí)時(shí)間
默認(rèn)存儲(chǔ)位置 /var/lib/mysql
默認(rèn)名稱:主機(jī)名-slow.log
[root@ser54 ~]# mysqldumpslow /var/lib/mysql/主機(jī)名-slow.log >sql.txt
#查看慢查詢?nèi)罩荆巡樵兂瑫r(shí)的查詢語(yǔ)句保存下來
log-queries-not-using-indexes #記錄未使用索引的查詢