国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

有關(guān)mysql的一些小技巧

2024-07-24 13:01:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1. 大批量亂序數(shù)據(jù)導(dǎo)入InnoDB很慢如何解決?

InnoDB因?yàn)橹麈I聚集索引的關(guān)系,如果沒(méi)有主鍵或者主鍵非序列的情況下,導(dǎo)入會(huì)越來(lái)越慢,如何快速的遷移數(shù)據(jù)到InnoDB?借助MyISAM的力量 是很靠譜的,先關(guān)閉InnoDB的Buffer Pool,把內(nèi)存空出來(lái),建一張沒(méi)有任何索引的MyISAM表,然后只管插入吧,concurrent_insert=2,在文件末尾并發(fā)插入,速度剛剛 的,插入完成后,ALTER TABLE把索引加上,記得還有ENGINE=InnoDB,就把MyISAM轉(zhuǎn)到InnoDB了,這樣的速度遠(yuǎn)比直接往InnoDB里插亂序數(shù)據(jù)來(lái)得快。

2. 在基于ROW的雙Master復(fù)制下,如何快速大批量訂正?

在A<->B的雙Master結(jié)構(gòu)下,假設(shè)只有一臺(tái)提供服務(wù),這是我們常用的架構(gòu),需要大批量訂正數(shù)據(jù),如何做最快?用存儲(chǔ)過(guò)程一批批提交?這有很多的限制,有時(shí)候并不可以把一條或多條SQL拆成幾段,怎么辦呢?binlog不是很好的工具嘛?! ROW格式的binlog,Slave在應(yīng)用時(shí)是直接使用Handler API,并沒(méi)有走SQL解析,速度非常快,基本上是IO操作了,那么我們可以在備庫(kù)上直接執(zhí)行訂正SQL,產(chǎn)生的ROW binlog傳到主機(jī),就會(huì)很快訂正完,基本上都比寫存儲(chǔ)過(guò)程快。

3. ROW格式Replication如何實(shí)現(xiàn)不帶庫(kù)名的replicate-do-db?

雖然MySQL有replicate-do-db這個(gè)參數(shù),但是在ROW格式的binlog下必須使用”db.table”的方式才能生效,USE對(duì)ROW格式是無(wú)效的。現(xiàn)在我有一個(gè)Instance,只需要復(fù)制Master的某幾個(gè)庫(kù),但是是ROW格式,SQL都 沒(méi)有使用db前綴,怎么辦?可以這么做,把主庫(kù)需要的庫(kù)導(dǎo)出來(lái),不需要的庫(kù)導(dǎo)出結(jié)構(gòu)即可,在Slave導(dǎo)入這些數(shù)據(jù)及結(jié)構(gòu),配置skip-slave- errors=all,這樣Master復(fù)制過(guò)來(lái)的binlog,只要發(fā)現(xiàn)有庫(kù)有表結(jié)構(gòu),就不會(huì)報(bào)找不到表,就不會(huì)阻塞復(fù)制,但是 UPDATE/DELETE過(guò)來(lái)沒(méi)有數(shù)據(jù)也會(huì)被跳過(guò)錯(cuò)誤,間接的實(shí)現(xiàn)了replicate-do-db。

4. A<–>B–>C–>D結(jié)構(gòu)切換到A<–>B, C<–>D結(jié)構(gòu)出現(xiàn)Slave_lag一直增常如何避免?

這種情況常見與一個(gè)雙Master集群分離出一套雙Master集群,例如從原集群分離一部分庫(kù)。過(guò)快的切換B–>C到C<–>D容易導(dǎo)致主備出現(xiàn)slave_lag,并且一直增長(zhǎng),原因在于A<–>B集群產(chǎn)生的SQL,隨同server_id帶到了C–>D這個(gè)M-S中,當(dāng)A,B產(chǎn)生的SQL在C,D還沒(méi)消化完成就CHANGE MASTER為C<–>D時(shí),會(huì)導(dǎo)致這寫SQL在C,D之間來(lái)回傳輸,因?yàn)镃,D都認(rèn)為這個(gè)SQL不是自己產(chǎn)生的,因而不銷毀,自己執(zhí)行后寫入binlog,于是Slave_Lag就一直增長(zhǎng)。
避免的方法很簡(jiǎn)單,部分寫切到C后,先斷開B–>C的復(fù)制,等一會(huì),看D上已經(jīng)沒(méi)有Slave_Lag了,再CHANGE MASTER為C<–>D,這樣A,B傳過(guò)來(lái)的SQL都消化完了。

5. 表中存在很多重復(fù)數(shù)據(jù)時(shí),如何刪除這些重復(fù)數(shù)據(jù)最快?

在需要給表中某些字段加唯一索引時(shí),而字段中又存在需要重復(fù)清理數(shù)據(jù)的問(wèn)題,不少DBA都應(yīng)該遇到過(guò)。一般在處理時(shí)總是想在數(shù)據(jù)庫(kù)中只保留一條,其他的刪除,但是這樣的SQL寫出來(lái)總是效率不高,怎么辦?其實(shí)可以轉(zhuǎn)換思路,把重復(fù)的都選出一條出來(lái),存到一張臨時(shí)表,然后刪除原表中所有存在重復(fù)的,再把臨時(shí)表的數(shù)據(jù)庫(kù)全部插入原庫(kù),這是比較通用并且高效的做法。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大足县| 郑州市| 德令哈市| 鄂伦春自治旗| 刚察县| 侯马市| 定襄县| 拉萨市| 山东省| 玛沁县| 宣化县| 锡林浩特市| 炉霍县| 东平县| 吉安市| 扎赉特旗| 政和县| 大埔区| 英山县| 瑞昌市| 老河口市| 上蔡县| 安义县| 西乡县| 仪征市| 仁怀市| 舞阳县| 隆德县| 兴安盟| 顺昌县| 蒙城县| 扶沟县| 潜江市| 永安市| 泰兴市| 广宗县| 北碚区| 南京市| 威信县| 阿城市| 罗城|