教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql分表查询的简单例子

mysql分表查询的简单例子

发布时间:2016-02-17   编辑:jiaochengji.com
分享一个mysql分表查询的小例子,用于减小大数量时的排队问题,以加快插入和查询的速度,有需要的朋友参考下。

本节内容:
mysql分表查询

mysql 分表是为了加快插入和查询的速度,分表之后,查询和插入操作会分配到多个表,即使有排队,队列的长度就会小很多。

创建一个mysql 存储过程,建立 100 个表 ,具有相同的结构:
 

复制代码 代码示例:
create procedure test()
begin
declare a int;
set a = 99;
while a >= 0 do
set @a = concat('create table urls_',a,'(`idx` int(11) NOT NULL AUTO_INCREMENT,`url_crc` char(10) NOT NULL,`url` varchar(100) NOT NULL,`title` varchar(500) DEFAULT \'\',`server` varchar(100) DEFAULT \'\',PRIMARY KEY (`idx`)) ENGINE=InnoDB DEFAULT CHARSET=ucs2');
prepare stmt from @a;
execute stmt;
set a = a-1;
end while;
end
//

然后插入时,根据数据的 crc32() 值 对 100 取余 来确定要插到哪一张表里。
查询时,可以将这些表都 union 起来查询。

创建存储过程:
 

复制代码 代码示例:
-- 查询所有的记录
create procedure test() 
begin 
declare a int; 
set a = 99;
set @a='';
while a >= 0 do 
set @a = concat(@a,'select * from urls_',a,' union ');
set a = a-1; 
end while; 
set @a = substring(@a,1,length(@a)-length(' union '));
select @a;
prepare stmt from @a;
execute stmt; 
end
//

您可能感兴趣的文章:
mysql 子查询与join性能对比
学习MySQL数据分页查询(limit用法)
mysql打开慢查询日志的方法
mysql子查询的五种方式
mysql explain用法学习
mysql分表查询的简单例子
php数据库连接、查询、显示结果的小例子
优化mysql的limit offset的例子
mysql where条件语句优化笔记
MySQL导入导出命令的例子

[关闭]
~ ~