MySQL基礎(chǔ)配置

1、總結(jié)mysql常見(jiàn)的存儲(chǔ)引擎以及特點(diǎn)重父。

MyISAM 存儲(chǔ)引擎

引擎特點(diǎn)

  • 不支持事務(wù)
  • 表級(jí)鎖定
  • 讀寫(xiě)相互阻塞,寫(xiě)入是不能讀蔫劣,讀時(shí)不能寫(xiě)
  • 只緩存索引
  • 不支持外鍵約束
  • 讀取數(shù)據(jù)較快坪郭,占用資源較少
  • 不支持MVCC(多版本并發(fā)控制機(jī)制)高并發(fā)
  • 崩潰恢復(fù)性較差
  • MySQL5.5.5 前默認(rèn)的數(shù)據(jù)庫(kù)引擎

適用場(chǎng)景

  • 只讀(或者寫(xiě)較少)
  • 表較小(可以接受長(zhǎng)時(shí)間進(jìn)行修復(fù)操作)

InnoDB 引擎

引擎特點(diǎn)

  • 行級(jí)鎖
  • 支持事務(wù)脉幢,適合處理大量短期的事務(wù)
  • 讀寫(xiě)阻塞與事務(wù)隔離級(jí)別相關(guān)
  • 可緩存數(shù)據(jù)和索引
  • 支持聚簇索引
  • 崩潰恢復(fù)性好
  • 支持MVCC高并發(fā)
  • 從MySQL5.5后支持全文索引
  • 從MySQL5.5.5開(kāi)始為默認(rèn)的數(shù)據(jù)庫(kù)引擎

其他存儲(chǔ)引擎

  • Performance_Schema:Performance_Schema數(shù)據(jù)庫(kù)使用
  • Memory :將所有數(shù)據(jù)存儲(chǔ)在RAM中歪沃,以便在需要快速查找參考和其他類(lèi)似數(shù)據(jù)的環(huán)境中進(jìn)行快速訪(fǎng)問(wèn)。適用存放臨時(shí)數(shù)據(jù)嫌松。引擎以前被稱(chēng)為HEAP引擎
  • MRG_MyISAM:使MySQL DBA或開(kāi)發(fā)人員能夠?qū)σ幌盗邢嗤腗yISAM表進(jìn)行邏輯分組沪曙,并將它們作為一個(gè)對(duì)象引用。適用于VLDB(Very Large Data Base)環(huán)境萎羔,如數(shù)據(jù)倉(cāng)庫(kù)
  • Archive :為存儲(chǔ)和檢索大量很少參考的存檔或安全審核信息液走,只支持SELECT和INSERT操作;支持行級(jí)鎖和專(zhuān)用緩存區(qū)
  • Federated聯(lián)合:用于訪(fǎng)問(wèn)其它遠(yuǎn)程MySQL服務(wù)器一個(gè)代理,它通過(guò)創(chuàng)建一個(gè)到遠(yuǎn)程MySQL服務(wù)器的客戶(hù)端連接缘眶,并將查詢(xún)傳輸?shù)竭h(yuǎn)程服務(wù)器執(zhí)行嘱根,而后完成數(shù)據(jù)存取,提供鏈接單獨(dú)MySQL服務(wù)器的能力巷懈,以便從多個(gè)物理服務(wù)器創(chuàng)建一個(gè)邏輯數(shù)據(jù)庫(kù)该抒。非常適合分布式或數(shù)據(jù)集市環(huán)境
  • BDB:可替代InnoDB的事務(wù)引擎,支持COMMIT顶燕、ROLLBACK和其他事務(wù)特性
  • Cluster/NDB:MySQL的簇式數(shù)據(jù)庫(kù)引擎凑保,尤其適合于具有高性能查找要求的應(yīng)用程序,這類(lèi)查找需求還要求具有最高的正常工作時(shí)間和可用性
  • CSV:CSV存儲(chǔ)引擎使用逗號(hào)分隔值格式將數(shù)據(jù)存儲(chǔ)在文本文件中涌攻∨芬可以使用CSV引擎以CSV格式導(dǎo)入和導(dǎo)出其他軟件和應(yīng)用程序之間的數(shù)據(jù)交換
  • BLACKHOLE :黑洞存儲(chǔ)引擎接受但不存儲(chǔ)數(shù)據(jù),檢索總是返回一個(gè)空集恳谎。該功能可用于分布式數(shù)據(jù)庫(kù)設(shè)計(jì)芝此,數(shù)據(jù)自動(dòng)復(fù)制,但不是本地存儲(chǔ)
  • example:“stub”引擎惠爽,它什么都不做癌蓖。可以使用此引擎創(chuàng)建表婚肆,但不能將數(shù)據(jù)存儲(chǔ)在其中或從中檢索租副。目的是作為例子來(lái)說(shuō)明如何開(kāi)始編寫(xiě)新的存儲(chǔ)引擎

2、MySQL查詢(xún)緩存優(yōu)化總結(jié)较性。

概述
mysql查詢(xún)緩存在數(shù)據(jù)庫(kù)優(yōu)化可以起到很大的作用

一用僧、緩存條件,原理
MySQL Query Cache是用來(lái)緩存我們所執(zhí)行的SELECT語(yǔ)句以及該語(yǔ)句的結(jié)果集赞咙,MySql在實(shí)現(xiàn)Query Cache的具體技術(shù)細(xì)節(jié)上類(lèi)似典型的KV存儲(chǔ)责循,就是將SELECT語(yǔ)句和該查詢(xún)語(yǔ)句的結(jié)果集做了一個(gè)HASH映射并保存在一定的內(nèi)存區(qū)域中。當(dāng)客戶(hù)端發(fā)起SQL查詢(xún)時(shí)攀操,Query Cache的查找邏輯是院仿,先對(duì)SQL進(jìn)行相應(yīng)的權(quán)限驗(yàn)證,接著就通過(guò)Query Cache來(lái)查找結(jié)果(注意必須是完全相同速和,即使多一個(gè)空格或者大小寫(xiě)不同都認(rèn)為不同歹垫,即使完全相同的SQL,如果使用不同的字符集颠放、不同的協(xié)議等也會(huì)被認(rèn)為是不同的查詢(xún)而分別進(jìn)行緩存)排惨。它不需要經(jīng)過(guò)Optimizer模塊進(jìn)行執(zhí)行計(jì)劃的分析優(yōu)化,更不需要發(fā)生同任何存儲(chǔ)引擎的交互碰凶,減少了大量的磁盤(pán)IO和CPU運(yùn) 算暮芭,所以有時(shí)候效率非常高鹿驼。

查詢(xún)緩存的工作流程如下:

1:命中條件

緩存存在一個(gè)hash表中,通過(guò)查詢(xún)SQL,查詢(xún)數(shù)據(jù)庫(kù),客戶(hù)端協(xié)議等作為key.在判斷是否命中前,MySQL不會(huì)解析SQL,而是直接使用SQL去查詢(xún)緩存,SQL任何字符上的不同,如空格,注釋,都會(huì)導(dǎo)致緩存不命中.

如果查詢(xún)中有不確定數(shù)據(jù),例如CURRENT_DATE()和NOW()函數(shù),那么查詢(xún)完畢后則不會(huì)被緩存.所以,包含不確定數(shù)據(jù)的查詢(xún)是肯定不會(huì)找到可用緩存的

2:工作流程

  1. 服務(wù)器接收SQL,以SQL和一些其他條件為key查找緩存表(額外性能消耗)
  2. 如果找到了緩存,則直接返回緩存(性能提升)
  3. 如果沒(méi)有找到緩存,則執(zhí)行SQL查詢(xún),包括原來(lái)的SQL解析,優(yōu)化等.
  4. 執(zhí)行完SQL查詢(xún)結(jié)果以后,將SQL查詢(xún)結(jié)果存入緩存表(額外性能消耗)

二、相關(guān)SQL語(yǔ)句
2.1辕宏、查看SQL緩存參數(shù):
show variables like '%query_cache%';

mysql> show variables like '%query_cache%';
+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| have_query_cache             | YES      |
| query_cache_limit            | 1048576  |
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 16777216 |
| query_cache_type             | OFF      |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+
6 rows in set (0.00 sec)

其中各個(gè)參數(shù)的意義如下:

Qcache_free_blocks:緩存中相鄰內(nèi)存塊的個(gè)數(shù)畜晰。數(shù)目大說(shuō)明可能有碎片。FLUSH QUERY CACHE會(huì)對(duì)緩存中的碎片進(jìn)行整理瑞筐,從而得到一個(gè)空閑塊舷蟀。 Qcache_free_memory:緩存中的空閑內(nèi)存。 Qcache_hits:每次查詢(xún)?cè)诰彺嬷忻袝r(shí)就增大 Qcache_inserts:每次插入一個(gè)查詢(xún)時(shí)就增大面哼。命中次數(shù)除以插入次數(shù)就是不中比率。 Qcache_lowmem_prunes:緩存出現(xiàn)內(nèi)存不足并且必須要進(jìn)行清理以便為更多查詢(xún)提供空間的次數(shù)扫步。這個(gè)數(shù)字最好長(zhǎng)時(shí)間來(lái)看;如果這個(gè) 數(shù)字在不斷增長(zhǎng)魔策,就表示可能碎片非常嚴(yán)重,或者內(nèi)存很少河胎。(上面的 free_blocks和free_memory可以告訴您屬于哪種情況) Qcache_not_cached:不適合進(jìn)行緩存的查詢(xún)的數(shù)量闯袒,通常是由于這些查詢(xún)不是 SELECT 語(yǔ)句或者用了now()之類(lèi)的函數(shù)。 Qcache_queries_in_cache:當(dāng)前緩存的查詢(xún)(和響應(yīng))的數(shù)量游岳。 Qcache_total_blocks:緩存中塊的數(shù)量政敢。
2.2、開(kāi)啟SQL緩存:set global query_cache_type = 1;
2.3胚迫、關(guān)閉SQL緩存:set global query_cache_type = 0;
2.4喷户、設(shè)置緩存空間:set global query_cache_size = 1024102464 (64M)
2.5、固定SQL語(yǔ)句聲明不適用緩存:select sql_no_cache * from 表名
注意:改變SQL語(yǔ)句的大小寫(xiě)或者數(shù)據(jù)表有數(shù)據(jù)改動(dòng)访锻,則不會(huì)調(diào)用緩存褪尝。

2.6、配置查詢(xún)緩存
vim /etc/mysql/mysql.conf.d/mysqld
query_cache_size=300M
query_cache_type=1

mysql> show variables like '%query_cache%';
+------------------------------+-----------+
| Variable_name                | Value     |
+------------------------------+-----------+
| have_query_cache             | YES       |
| query_cache_limit            | 1048576   |
| query_cache_min_res_unit     | 4096      |
| query_cache_size             | 314572800 |
| query_cache_type             | ON        |
| query_cache_wlock_invalidate | OFF       |
+------------------------------+-----------+
6 rows in set (0.00 sec)

三期犬、清除緩存
mysql的FLUSH句法(清除緩存)

FLUSH flush_option [,flush_option]
如果你想要清除一些MySQL使用內(nèi)部緩存河哑,你應(yīng)該使用FLUSH命令。為了執(zhí)行FLUSH龟虎,你必須有reload權(quán)限璃谨。

flush_option可以是下列任何東西:

HOSTS 這個(gè)用的最多,經(jīng)常碰見(jiàn)鲤妥。主要是用來(lái)清空主機(jī)緩存表佳吞。如果你的某些主機(jī)改變IP數(shù)字,或如果你得到錯(cuò)誤消息Host ... isblocked旭斥,你應(yīng)該清空主機(jī)表容达。當(dāng)在連接MySQL服務(wù)器時(shí),對(duì)一臺(tái)給定的主機(jī)有多于 max_connect_errors個(gè)錯(cuò)誤連續(xù)不斷地發(fā)生垂券,MySQL為了安全的需要將會(huì)阻止該主機(jī)進(jìn)一步的連接請(qǐng)求花盐。清空主機(jī)表允許主機(jī)再?lài)L試連接羡滑。 LOGS 關(guān)閉當(dāng)前的二進(jìn)制日志文件并創(chuàng)建一個(gè)新文件丰辣,新的二進(jìn)制日志文件的名字在當(dāng)前的二進(jìn)制文件的編號(hào)上加1垛叨。 PRIVILEGES 這個(gè)也是經(jīng)常使用的涎显,每當(dāng)重新賦權(quán)后许昨,為了以防萬(wàn)一识窿,讓新權(quán)限立即生效渗稍,一般都執(zhí)行一把曼尊,目地是從數(shù)據(jù)庫(kù)授權(quán)表中重新裝載權(quán)限到緩存中蚁鳖。 TABLES 關(guān)閉所有打開(kāi)的表届囚,同時(shí)該操作將會(huì)清空查詢(xún)緩存中的內(nèi)容有梆。 FLUSH TABLES WITH READ LOCK 關(guān)閉所有打開(kāi)的表,同時(shí)對(duì)于所有數(shù)據(jù)庫(kù)中的表都加一個(gè)讀鎖意系,直到顯示地執(zhí)行unlock tables泥耀,該操作常常用于數(shù)據(jù)備份的時(shí)候。 STATUS 重置大多數(shù)狀態(tài)變量到0蛔添。 MASTER 刪除所有的二進(jìn)制日志索引文件中的二進(jìn)制日志文件痰催,重置二進(jìn)制日志文件的索引文件為空,創(chuàng)建一個(gè)新的二進(jìn)制日志文件,不過(guò)這個(gè)已經(jīng)不推薦使用迎瞧,改成reset master 了夸溶。可以想象凶硅,以前自己是多土啊缝裁,本來(lái)一條簡(jiǎn)單的命令就可以搞定的,卻要好幾條命令來(lái)足绅,以前的做法是先查出來(lái)當(dāng)前的二進(jìn)制日志文件名压语,再用purge 操作。 QUERY CACHE 重整查詢(xún)緩存编检,消除其中的碎片胎食,提高性能,但是并不影響查詢(xún)緩存中現(xiàn)有的數(shù)據(jù)允懂,這點(diǎn)和Flush table 和Reset Query Cache(將會(huì)清空查詢(xún)緩存的內(nèi)容)不一樣的厕怜。 SLAVE 類(lèi)似于重置復(fù)制吧,讓從數(shù)據(jù)庫(kù)忘記主數(shù)據(jù)庫(kù)的復(fù)制位置蕾总,同時(shí)也會(huì)刪除已經(jīng)下載下來(lái)的relay log,與Master一樣粥航,已經(jīng)不推薦使用,改成Reset Slave了生百。這個(gè)也很有用的递雀。
一般來(lái)講,F(xiàn)lush操作都會(huì)記錄在二進(jìn)制日志文件中蚀浆,但是FLUSH LOGS缀程、FLUSH MASTER搜吧、FLUSH SLAVE、FLUSH TABLES WITH READ LOCK不會(huì)記錄杨凑,因此上述操作如果記錄在二進(jìn)制日志文件中話(huà)滤奈,會(huì)對(duì)從數(shù)據(jù)庫(kù)造成影響。注意:Reset操作其實(shí)扮演的是一個(gè)Flush操作的增強(qiáng)版的角色撩满。

四蜒程、緩存的內(nèi)存管理
緩存會(huì)在內(nèi)存中開(kāi)辟一塊內(nèi)存(query_cache_size)來(lái)維護(hù)緩存數(shù)據(jù),其中有大概40K的空間是用來(lái)維護(hù)緩存的元數(shù)據(jù)的,例如空間內(nèi)存,數(shù)據(jù)表和查詢(xún)結(jié)果的映射,SQL和查詢(xún)結(jié)果的映射等.

MySQL將這個(gè)大內(nèi)存塊分為小的內(nèi)存塊(query_cache_min_res_unit),每個(gè)小塊中存儲(chǔ)自身的類(lèi)型,大小和查詢(xún)結(jié)果數(shù)據(jù),還有指向前后內(nèi)存塊的指針.

MySQL需要設(shè)置單個(gè)小存儲(chǔ)塊的大小,在SQL查詢(xún)開(kāi)始(還未得到結(jié)果)時(shí)就去申請(qǐng)一塊空間,所以即使你的緩存數(shù)據(jù)沒(méi)有達(dá)到這個(gè)大小,也需要用這 個(gè)大小的數(shù)據(jù)塊去存(這點(diǎn)跟Linux文件系統(tǒng)的Block一樣).如果結(jié)果超出這個(gè)內(nèi)存塊的大小,則需要再去申請(qǐng)一個(gè)內(nèi)存塊.當(dāng)查詢(xún)完成發(fā)現(xiàn)申請(qǐng)的內(nèi)存 塊有富余,則會(huì)將富余的空間釋放掉,這就會(huì)造成內(nèi)存碎片問(wèn)題

在查詢(xún)開(kāi)始時(shí)申請(qǐng)分配內(nèi)存Block需要鎖住整個(gè)空閑內(nèi)存區(qū),所以分配內(nèi)存塊是非常消耗資源的.注意這里所說(shuō)的分配內(nèi)存是在MySQL初始化時(shí)就開(kāi)辟的那塊內(nèi)存上分配的.

五、緩存的使用時(shí)機(jī) & 性能
衡量打開(kāi)緩存是否對(duì)系統(tǒng)有性能提升是一個(gè)很難的話(huà)題

  1. 通過(guò)緩存命中率判斷, 緩存命中率 = 緩存命中次數(shù) (Qcache_hits) / 查詢(xún)次數(shù) (Com_select)
  2. 通過(guò)緩存寫(xiě)入率, 寫(xiě)入率 = 緩存寫(xiě)入次數(shù) (Qcache_inserts) / 查詢(xún)次數(shù) (Qcache_inserts)
  3. 通過(guò)命中-寫(xiě)入率 判斷, 比率 = 命中次數(shù) (Qcache_hits) / 寫(xiě)入次數(shù) (Qcache_inserts), 高性能MySQL中稱(chēng)之為比較能反映性能提升的指數(shù),一般來(lái)說(shuō)達(dá)到3:1則算是查詢(xún)緩存有效,而最好能夠達(dá)到10:1

任何事情過(guò)猶不及伺帘,尤其對(duì)于某些寫(xiě)頻繁的系統(tǒng)昭躺,開(kāi)啟Query Cache功能可能并不能讓系統(tǒng)性能有提升,有時(shí)反而會(huì)有下降伪嫁。原因是MySql為了保證Query Cache緩存的內(nèi)容和實(shí)際數(shù)據(jù)絕對(duì)一致窍仰,當(dāng)某個(gè)數(shù)據(jù)表發(fā)生了更新、刪除及插入操作礼殊,MySql都會(huì)強(qiáng)制使所有引用到該表的查詢(xún)SQL的Query Cache失效。對(duì)于密集寫(xiě)操作针史,啟用查詢(xún)緩存后很可能造成頻繁的緩存失效晶伦,間接引發(fā)內(nèi)存激增及CPU飆升,對(duì)已經(jīng)非常忙碌的數(shù)據(jù)庫(kù)系統(tǒng)這是一種極大的負(fù)擔(dān)啄枕。

**六婚陪、查詢(xún)緩存問(wèn)題分析 **
分析和配置查詢(xún)緩存

總結(jié)
這里要注意Query Cache因MySql的存儲(chǔ)引擎不同而實(shí)現(xiàn)略有差異,比如MyISAM频祝,緩存的結(jié)果集存儲(chǔ)在OS Cache中泌参,而最流行的InnoDB則放在Buffer Pool中。


3常空、MySQL各類(lèi)日志總結(jié)沽一。

  • 日志類(lèi)型:

錯(cuò)誤日志(error log)
常規(guī)日志(general log)
二進(jìn)制日志(bin log)
中繼日志(relay log)
慢日志(slow log)
InnoDB引擎的redo log

錯(cuò)誤日志

log-error = error.log
不加存儲(chǔ)路徑存儲(chǔ)到datadir下,如果不指定名字是hostname.err
記錄MySQL啟動(dòng)關(guān)閉漓糙,運(yùn)行中的異诚巢或是重要提示信息
在生產(chǎn)環(huán)境中,監(jiān)控這個(gè)日志

全量日志(常規(guī)日志)

general_log = OFF|ON
general_log_file = general.log
不指定路徑存儲(chǔ)到datadir下昆禽,如果不指定名字是hostname.log
開(kāi)啟后蝗蛙,記錄client和數(shù)據(jù)庫(kù)的所有請(qǐng)求

二進(jìn)行日志

最大文件數(shù)為2的32次方個(gè)
log-bin = /data/mysql/mysql3306/logs/mysql-bin
設(shè)置二進(jìn)制日志的存儲(chǔ)位置及prefix名字
用記錄數(shù)據(jù)庫(kù)寫(xiě)入操作的日志,可以用于備份或是master/slave的復(fù)制醉鳖,必須有server-id
如果沒(méi)有可以通過(guò)修改內(nèi)存里的值加上捡硅,但是有風(fēng)險(xiǎn)
不能太快產(chǎn)生,盡量大些盗棵,5分鐘左右產(chǎn)生一個(gè)日志
log_bin = /data/mysql/mysql3306/log/mysql-bin 是否開(kāi)啟binlog
log_bin_index = /data/mysql/mysql3306/log/mysql-bin.index
指定binlog的一個(gè)索引文件壮韭,默認(rèn)是在datadir形成log_bin的prefix名index
binlog_do_db = thunder
用于指定只記錄那個(gè)庫(kù)的二進(jìn)制日志(建議不要用)
max_binlog_size = 500M
指定binlog的大小為500M一個(gè)文件北发,默認(rèn)是1G
expire-logs-days = 5 指定保留binlog的天數(shù)
binlog_format = row
指定binlog的日志格式,支持statement,row,mixed格式
statement格式記錄原生的sql
row格式里沒(méi)有泰涂,但5.6后增加了一個(gè)query event可以看到原來(lái)的sql
binlog_rows_query_log_events 默認(rèn)是off
mixed格式是兩種形式的混合體鲫竞,DDL語(yǔ)句記錄statement格式,DML語(yǔ)句記錄row格式
推薦使用row格式
binlog_row_image = full
控制日志中binlog的詳細(xì)相關(guān)的程度逼蒙,支持full(default),minimal,nobolb
minimal:只記錄變化的行和唯一標(biāo)識(shí)列
nobolb:除了blob,text其它列都記
binlog_error_action = abort_server
當(dāng)遇到mysql不能寫(xiě)binlog時(shí)从绘,報(bào)出異常,默認(rèn)是ignore error不報(bào)錯(cuò)
binlog_direct_non_transactional_updates = on
對(duì)于非事務(wù)引擎表是牢,直接走日志僵井,不走2pc提交,默認(rèn)是不支持
binlog_order_commit = on
按順序?qū)懭肴罩?br> binlog_cache_size=1M 已經(jīng)很大,此參數(shù)表示binlog使用的內(nèi)存大小驳棱,可以通過(guò)狀態(tài)變量binlog_cache_use和bin_cache_disk_use 來(lái)幫助測(cè)試
binlog_cache_use:使用二進(jìn)制日志緩存的事務(wù)數(shù)量
binlog_cache_disk_use:使用二進(jìn)制日志緩存但超過(guò)binlog_cache_size值并使用臨時(shí)文件來(lái)保存事務(wù)中的語(yǔ)句的事務(wù)數(shù)量
binlog_checksum (5.6.2引入)在高版本上修改
mysql5.6.6后默認(rèn)是crc32批什,之前版本是none
在啟用這個(gè)參數(shù)之前對(duì)于日志的完整校驗(yàn)就是通過(guò)對(duì)比長(zhǎng)度,引入新的方式后社搅,利用新方法對(duì)內(nèi)容進(jìn)行校驗(yàn)
binlog_rows_query_log_events (5.6.2引入)
只作用于RBR格式驻债,默認(rèn)不啟用
如果啟用,會(huì)把用戶(hù)寫(xiě)直的原生態(tài)DML操作記錄到binlog中
log_bin_use_v1_row_events (5.6.6引入)
默認(rèn)是0形葬,如果使用1是使用Version1的格式合呐,mysql5.5可以認(rèn)出來(lái)的形式,如果0是5.6.6后使用的version2格式
sync_binlog = 1|0
這個(gè)參數(shù)對(duì)性能影響嚴(yán)重笙以,數(shù)據(jù)一致性條件要求高調(diào)整為1淌实,性能差別大概為10倍
當(dāng)事務(wù)提交后,mysql僅僅是將binlog_cache中的數(shù)據(jù)寫(xiě)入binlog文件猖腕,但不執(zhí)行fsync之類(lèi)的磁盤(pán)同步指令通知文件系統(tǒng)將緩存刷新到磁盤(pán)拆祈,面讓filesystem自行決定什么時(shí)候來(lái)同步,這個(gè)是性能最好的倘感。
sync_binlog=n 在進(jìn)行n次事務(wù)提交以后放坏,mysql將執(zhí)行一次fsync之類(lèi)的磁盤(pán)同步指令,同步文件系統(tǒng)將binlog文件緩存刷新到磁盤(pán)老玛。
mysql中默認(rèn)的設(shè)置是sync_binlog=0,即不作任何強(qiáng)制性的磁盤(pán)刷新指令轻姿,這是性能是最好的,但風(fēng)險(xiǎn)也是最大的逻炊。一旦系統(tǒng)crash互亮,在文件系統(tǒng)緩存中的所有binlog信息都會(huì)丟失

中繼日志

relay-log = relay-bin
設(shè)置中繼日志的名稱(chēng)前綴,不指定路徑默認(rèn)在datadir下
log_thread從master就讀到的日志寫(xiě)到中繼日志中余素,供sql_thread執(zhí)行豹休,以完成復(fù)制

慢日志

slow-query-log-file = slow.log
slow-query-log
long_query_time=1
是怎么計(jì)時(shí)的,
ddl語(yǔ)句 exec時(shí)間
dml語(yǔ)句 select從等待鎖開(kāi)始計(jì)時(shí)桨吊,insert只記錄執(zhí)行時(shí)間
利用slow-query-log這個(gè)參數(shù)打開(kāi)慢日志威根,slow-query-log-file指定慢日志的名稱(chēng)凤巨,不指定路徑默認(rèn)在datadir下
建議每天一個(gè)文件,時(shí)間長(zhǎng)可能會(huì)很大洛搀,做定時(shí)任務(wù)

Innodb的redo-log

事務(wù)處理日志
innodb_log_group_home_dir=/data/mysql/mysql3317/logs 默認(rèn)在datadir下
SSD磁盤(pán)中敢茁,日志文件不要放在SSD磁盤(pán)中,普通硬盤(pán)即可
innodb_log_file_size = 200M 512M左右即可
innodb_log_files_in_group = 3 個(gè)數(shù)
指定redo log的存儲(chǔ)位置及大小留美,文件個(gè)數(shù)
Innodb事務(wù)操作不可缺少的一個(gè)環(huán)節(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末彰檬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谎砾,更是在濱河造成了極大的恐慌逢倍,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件景图,死亡現(xiàn)場(chǎng)離奇詭異较雕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)挚币,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)亮蒋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人妆毕,你說(shuō)我怎么就攤上這事慎玖。” “怎么了设塔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)远舅。 經(jīng)常有香客問(wèn)我闰蛔,道長(zhǎng),這世上最難降的妖魔是什么图柏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任序六,我火速辦了婚禮,結(jié)果婚禮上蚤吹,老公的妹妹穿的比我還像新娘例诀。我一直安慰自己,他們只是感情好裁着,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布繁涂。 她就那樣靜靜地躺著,像睡著了一般二驰。 火紅的嫁衣襯著肌膚如雪扔罪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天桶雀,我揣著相機(jī)與錄音矿酵,去河邊找鬼唬复。 笑死,一個(gè)胖子當(dāng)著我的面吹牛全肮,可吹牛的內(nèi)容都是我干的敞咧。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼辜腺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼休建!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起哪自,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤丰包,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后壤巷,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體邑彪,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年胧华,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寄症。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矩动,死狀恐怖有巧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悲没,我是刑警寧澤篮迎,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站示姿,受9級(jí)特大地震影響甜橱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜栈戳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一岂傲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧子檀,春花似錦镊掖、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至缩歪,卻和暖如春镐侯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工苟翻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留韵卤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓崇猫,卻偏偏與公主長(zhǎng)得像沈条,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诅炉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1蜡歹、總結(jié)mysql常見(jiàn)的存儲(chǔ)引擎以及特點(diǎn)。 1涕烧、1 MyISAM存儲(chǔ)引擎 不支持事務(wù) 表級(jí)鎖定 讀寫(xiě)相互阻塞月而,寫(xiě)入...
    沐熙一葉_Leaf閱讀 267評(píng)論 1 0
  • 1、總結(jié)mysql常見(jiàn)的存儲(chǔ)引擎以及特點(diǎn)议纯。 1父款、MyISAM存儲(chǔ)引擎MyISAM引擎特點(diǎn):● 不支持事務(wù)● 表級(jí)鎖...
    紫火紅云閱讀 146評(píng)論 0 0
  • 一、總結(jié)mysql常見(jiàn)的存儲(chǔ)引擎以及特點(diǎn)瞻凤。 1憨攒、 MyISAM存儲(chǔ)引擎 MyISAM引擎特點(diǎn):不支持事務(wù)表級(jí)鎖定讀...
    亨利閱讀 285評(píng)論 1 0
  • 1、總結(jié)mysql常見(jiàn)的存儲(chǔ)引擎以及特點(diǎn)阀参。 存儲(chǔ)引擎:負(fù)責(zé)把具體SQL語(yǔ)句的結(jié)果完成對(duì)磁盤(pán)上文件路徑訪(fǎng)問(wèn)的轉(zhuǎn)換肝集,數(shù)...
    陌路殘蟬閱讀 152評(píng)論 1 0
  • 1、運(yùn)用haproxy實(shí)現(xiàn)nginx服務(wù)負(fù)載均衡 測(cè)試環(huán)境: Nginx1: 172.16.100.151 por...
    衛(wèi)清華閱讀 333評(píng)論 0 0