婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用perl實現拆分數據表(mysql)并遷移數據實例

使用perl實現拆分數據表(mysql)并遷移數據實例

熱門標簽:惠州龍門400電話要怎么申請 okcc外呼系統怎么調速度 上海企業外呼系統 智能機器人電銷神器 外呼電信系統 熱門電銷機器人 萬利達百貨商場地圖標注 河南虛擬外呼系統公司 電話機器人哪里有賣

隨著業務量的增長,可能需要對表進行拆分來提高性能。

下面這個例子是將www.jb51.net的users表拆分成10個表ttlsa_user_0-ttlsa_user_9。

拆分遷移數據程序如下所示:

1.創建ttlsa_user_0-ttlsa_user_9表

復制代碼 代碼如下:

#!/usr/bin/perl
###################################
### author: www.jb51.net ###
### QQ群:232608061  ###
### E-mail:service@jb51.net ###
###################################

use DBI;

my $driver=”DBI:mysql”;
my $from_database=”ttlsa”;
my $from_user=”root”;
my $from_password=”123456″;
my $from_host=”localhost”;

$from_dbh=DBI->connect (“$driver:$from_database:$from_host;user=$from_user;password=$from_password”) or die “cannot connect: “. DBI->errstr;

for (0..9) {
$sql=”CREATE TABLE `ttlsa_user_$_` (
`uid` int(10) NOT NULL AUTO_INCREMENT,
`email` varchar(50) NOT NULL,
`passwd` varchar(40) NOT NULL,
`user_name` varchar(20) NOT NULL,
PRIMARY KEY (`uid`),
UNIQUE KEY `email` (`email`),
UNIQUE KEY `user_name` (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT”;
$from_dbh->do($sql);
}
$from_dbh->disconnect();

2.遷移數據

復制代碼 代碼如下:

#!/usr/bin/perl
###################################
### author: www.jb51.net ###
### QQ群:232608061  ###
### E-mail:service@jb51.net ###
###################################

use DBI;

my $driver=”DBI:mysql”;
my $from_database=”ttlsa”;
my $from_user=”root”;
my $from_password=”123456″;
my $from_host=”localhost”;

$from_dbh=DBI->connect (“$driver:$from_database:$from_host;user=$from_user;password=$from_password”) or die “cannot connect: “. DBI->errstr;
$from_dbh->do(“set names ‘utf8′”);
$from_dbh->do(“set session autocommit=0″);
$from_dbh->do(“set session unique_checks=0″);

$max=600000;
$step=10000;
for ($i=1;$i $step_i=$i+$step;
$sql=”select * from ttlsa_users where user_id>=$i and user_id $sth=$from_dbh->prepare($sql);
$sth->execute;
@value=();
while ($row=$sth->fetchrow_hashref()) {
$uid=$row->{uid};
$email=$row->{email};
$passwd=$row->{passwd};
$user_name=$row->{user_name};
$key=substr($user_id,-1);
$value[$key].=”(‘$uid','$email','$passwd','$user_name'),”;

}
for (0..9) {
chop($value[$_]);
$sql=”insert into ttlsa_user_$_ (`uid`,`email`,`passwd`,`user_name`) values” . $value[$_];
$from_dbh->do(“$sql”);
}
}
$from_dbh->do(“set session autocommit=1″);
$from_dbh->do(“set session unique_checks=1″);
$sth->finish();
$from_dbh->disconnect();

3.附錄

如果沒有那么多數據量,可以隨意插入一些數據進行測試。下面提供一個插入數據的腳本。

復制代碼 代碼如下:

#!/usr/bin/perl
###################################
### author: www.jb51.net ###
### QQ群:232608061  ###
### E-mail:service@jb51.net ###
###################################

use DBI;
use Digest::SHA qw(sha1_hex);

my $driver=”DBI:mysql”;
my $from_database=”ttlsa”;
my $from_user=”root”;
my $from_password=”123456″;
my $from_host=”localhost”;

$from_dbh=DBI->connect (“$driver:$from_database:$from_host;user=$from_user;password=$from_password”) or die “cannot connect: “. DBI->errstr;
$from_dbh->do(“set names ‘utf8′”);
$from_dbh->do(“set session autocommit=0″);
$from_dbh->do(“set session unique_checks=0″);

for (1..100000) {
$insert_sql=$from_dbh->prepare(“insert into ttlsa_users (email,passwd,user_name) values (?,?,?)”);
$email=”auto-gre-$_\@jb51.net”;
$data=”auto-gre-$_”;
$passwd=sha1_hex($data);
$user_name=”auto-gre-$_”;
$insert_sql->execute($email,$passwd,$user_name);
}

$from_dbh->do(“set session autocommit=1″);
$from_dbh->do(“set session unique_checks=1″);
$insert_sql->finish();
$from_dbh->disconnect();

您可能感興趣的文章:
  • MYSQL數據庫數據拆分之分庫分表總結
  • MySQL按指定字符合并以及拆分實例教程
  • MySQL截取和拆分字符串函數用法示例
  • MySQL 常見數據拆分辦法
  • MySQL 表的垂直拆分和水平拆分

標簽:綏化 淮安 周口 合肥 周口 秦皇島 綿陽 百色

巨人網絡通訊聲明:本文標題《使用perl實現拆分數據表(mysql)并遷移數據實例》,本文關鍵詞  使用,perl,實現,拆分,數據表,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用perl實現拆分數據表(mysql)并遷移數據實例》相關的同類信息!
  • 本頁收集關于使用perl實現拆分數據表(mysql)并遷移數據實例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 三亚市| 门源| 武威市| 凤山县| 凤冈县| 云安县| 红桥区| 桂平市| 安义县| 岗巴县| 安岳县| 贞丰县| 武隆县| 阿拉尔市| 内江市| 盐源县| 扎赉特旗| 湖州市| 姜堰市| 武山县| 巴彦淖尔市| 南京市| 荣成市| 库尔勒市| 闵行区| 玉树县| 柘城县| 白山市| 大渡口区| 鹰潭市| 濮阳县| 嘉禾县| 额尔古纳市| 章丘市| 安陆市| 苍南县| 枣阳市| 杭锦后旗| 合川市| 云梦县| 襄垣县|