使用perl实现拆分数据表(mysql)并迁移数据实例
随着业务量的增长,可能需要对表进行拆分来提高性能。
下面这个例子是将www.nhooo.com的users表拆分成10个表ttlsa_user_0-ttlsa_user_9。
拆分迁移数据程序如下所示:
1.创建ttlsa_user_0-ttlsa_user_9表
#!/usr/bin/perl ################################### ###author:www.nhooo.com### ###QQ群:232608061 ### ###E-mail:service@jb51.net### ###################################
useDBI;
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”)ordie“cannotconnect:“.DBI->errstr;
for(0..9){ $sql=”CREATETABLE`ttlsa_user_$_`( `uid`int(10)NOTNULLAUTO_INCREMENT, `email`varchar(50)NOTNULL, `passwd`varchar(40)NOTNULL, `user_name`varchar(20)NOTNULL, PRIMARYKEY(`uid`), UNIQUEKEY`email`(`email`), UNIQUEKEY`user_name`(`user_name`) )ENGINE=InnoDBDEFAULTCHARSET=utf8ROW_FORMAT=COMPACT”; $from_dbh->do($sql); } $from_dbh->disconnect();