查詢:根據取模查詢分庫資料
刪除:根據取模刪除分庫資料,非同步執行訊息佇列後刪除總資料庫資料
查詢**:find.php
<?php
require
"./rundbpdo.php"
;$model
=new
rundbpdo()
;$model
->
configfile
='./config/user.config.php'
;$user_id=2
;$d=$user_id%2
;$model
->
configfile
="./config/user
.config.php"
;$sql
="select * from mm_user
where user_id=''";
$data
=$model
->
getrow
($sql);
var_dump
($data
);
刪除邏輯**delete.php
<?php
require
"./rundbpdo.php"
;require
'./redisq.php'
;$model
=new
rundbpdo()
;$model
->
configfile
='./config/user.config.php'
;$redis
=new
redisq()
;#1、先刪除分庫資料,後壓入訊息佇列刪除總庫資料
$user_id=3
;$d=$user_id%2
;$model
->
configfile
="./config/user
.config.php"
;$sql
="delete from mm_user
where user_id = ''";
$result
=$model
->
query
($sql);
if($result)'"
;$bool
=$redis
->
lpush
('sqls'
,$sql);
var_dump
($bool);
}
非同步執行訊息佇列刪除總庫資料queque.php
<?php
$file_dir
=dirname
(__file__);
chdir
($file_dir);
require
"./redisq.php"
;require
'./rundbpdo.php'
;$redis_boj
=new
redisq()
;$model
=new
rundbpdo()
;$model
->
configfile
='./config/user.config.php'
;//4、迴圈出佇列 當sql為空時break結束前迴圈,sql執行失敗的寫入檔案日誌,後期重新執行
$do=
true
;while
($do
)$res
=$model
->
query
($sql);
if(!$res
)var_dump
($res);
}
mysql分布式搭建 MySQL分布式集群搭建
1 準備集群搭建環境 使用6臺虛擬機器來搭建mysql分布式集群,相應的實驗環境與對應的mysql節點之間的對應關係如下圖所示 管理節點 mgm 這類節點的作用是管理mysqlcluster內的其他節點,如提供配置資料,並停止節點,執行備份等。由於這類節點負責管理其他節點的配置,應該在啟動其他節點之...
mysql分布式事務
儲引擎實現事務的通用方式是基於 redo log 和 undo log。簡單來說,redo log 記錄事務修改後的資料,undo log 記錄事務前的原始資料。所以當乙個事務執行時實際發生過程簡化描述如下 先記錄 undo redo log,確保日誌刷到磁碟上持久儲存。更新資料記錄,快取操作並非同...
MySQL分布式事務
mysql5.0.3開始支援分布式事務,只支援innodb引擎。1.分布式事務原理 使用分布式事務的應用程式涉及乙個或多個資源管理器和乙個事務管理器。資源管理器 rm 用於提供通向事務資源的途徑,資料庫伺服器是一種資源管理器。該管理器必須可以提交或回滾由rm管理的事務。事務管理器 tm 用於協調作為...