mysql半同步 mysql優(yōu)化教程?
mysql優(yōu)化教程?1. 優(yōu)化SQL語句、索引和表結(jié)構(gòu)。2. 打開查詢緩存時,查詢緩存緩存選擇查詢及其結(jié)果數(shù)據(jù)集。當(dāng)執(zhí)行同一個select查詢時,MySQL將直接從內(nèi)存中檢索結(jié)果,這加快了查詢的執(zhí)行速
mysql優(yōu)化教程?
1. 優(yōu)化SQL語句、索引和表結(jié)構(gòu)。
2. 打開查詢緩存時,查詢緩存緩存選擇查詢及其結(jié)果數(shù)據(jù)集。當(dāng)執(zhí)行同一個select查詢時,MySQL將直接從內(nèi)存中檢索結(jié)果,這加快了查詢的執(zhí)行速度,減少了對數(shù)據(jù)庫的壓力。執(zhí)行show變量,比如“have”uqueryucache,您可以檢查MySQL查詢緩存是否打開。要打開查詢緩存,只需配置我的.cnf具體如下:
querycacheuuutype=1
querycacheuusize=128M
querycacheulimit=1m
保存后重新啟動mysql。
3. 選擇InnoDB存儲引擎。MySQL常用的存儲引擎是MyISAM和InnoDB。它們之間的區(qū)別如下:
MyISAM
查詢速度快;
支持表級鎖,在此期間不能對表執(zhí)行其他操作;
支持全文檢索;
支持?jǐn)?shù)據(jù)壓縮、自復(fù)制、查詢緩存和數(shù)據(jù)加密;
不支持外鍵;
不支持事務(wù),因此沒有提交和回滾操作;
不支持群集數(shù)據(jù)庫。
InnoDB
支持行級鎖;
支持外鍵和外鍵約束強制執(zhí)行;
支持事務(wù),可以執(zhí)行提交和回滾操作;
支持?jǐn)?shù)據(jù)壓縮、自復(fù)制、查詢緩存和數(shù)據(jù)加密;
可以在群集環(huán)境中使用,但不完全支持。InnoDB表可以轉(zhuǎn)換為NDB存儲引擎,可以在集群環(huán)境下使用。
MySQL主從復(fù)制能完美解決數(shù)據(jù)庫的單點問題嗎?為什么?
使用主從時,實際上放棄了強一致性。由于受試者只問一個問題,我們不考慮訪問次數(shù)的問題。換句話說,假設(shè)主從復(fù)制可以完全支持當(dāng)前的系統(tǒng)訪問。)
通用數(shù)據(jù)庫主從設(shè)置:
主數(shù)據(jù)庫可以讀寫
即系統(tǒng)可以同時從主數(shù)據(jù)庫和從數(shù)據(jù)庫獲取數(shù)據(jù)。數(shù)據(jù)寫入主庫后,會自動同步到從庫。
這構(gòu)成了一個簡單的分布式系統(tǒng)。根據(jù)cap定理,三個中只能選擇一個。如果一致性很強,則不會提高系統(tǒng)的可用性,反而會降低系統(tǒng)的可用性。
讓我們看看上面的主從結(jié)構(gòu)中可能出現(xiàn)什么問題:
系統(tǒng)寫入主數(shù)據(jù)庫,然后從主數(shù)據(jù)庫進行查詢。這是一個單點數(shù)據(jù)庫,沒有影響。
-如果數(shù)據(jù)已同步,則沒有影響
-如果數(shù)據(jù)未同步,則會查詢舊數(shù)據(jù)
-如果同步有問題,則會斷開主設(shè)備和從設(shè)備的連接。如果系統(tǒng)無法感知它,那么查詢可能總是舊數(shù)據(jù)。這里我們需要監(jiān)視同步。當(dāng)同步出現(xiàn)問題時,我們應(yīng)該及時處理
掛斷庫。主數(shù)據(jù)不能與從數(shù)據(jù)同步。如果主從交換機是自動的,單點故障的概率只會降低50%(如果主數(shù)據(jù)庫或備用數(shù)據(jù)庫發(fā)生故障,并且沒有人恢復(fù))。