分表技术
来源:互联网 发布:搬瓦工 centos 6 7 编辑:程序博客网 时间:2024/06/18 15:29
n 分表技术
分表技术有(水平分割和垂直分割)
当一张越来越大时候,即使添加索引还慢的话,我们可以使用分表
以qq用户表来具体的说明一下分表的操作.
思路如图 :
首先我创建三张表 user0 / user1 /user2 , 然后我再创建 uuid表,该表的作用就是提供自增的id,
走代码:
create table user0(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;
create table user1(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;
create table user2(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;
create table uuid(
id int unsigned primary key auto_increment)engine=myisam charset utf8;
编写addUser.php
<?php
//注册一个用户
$con=mysql_connect("localhost","root","root");
if(!$con){
die("连接失败!");
}
mysql_select_db("temp",$con);
$name=$_GET['name'];
$pwd=$_GET['pwd'];
//这时我们先获取用户id,id是从uuid表获取
$sql="insert into uuid values(null)";
if(mysql_query($sql,$con)){
$id=mysql_insert_id();
}
//计算表名,就是,你应该把这个用户放入到哪个表
$talname='user'.$id%3;
$sql="insert into {$talname} values ($id,'$name','$pwd')";
if(mysql_query($sql,$con)){
echo '添加用户到 '.$talname.'ok';
}
mysql_close($con);
//
<?php
//注册一个用户
$con=mysql_connect("localhost","root","root");
if(!$con){
die("连接失败!");
}
mysql_select_db("temp",$con);
$id=intval($_GET['id']);
//计算表名
$tabname='user'.$id%3;
$sql="select pwd from {$tabname} where id=$id";
$res=mysql_query($sql,$con);
if($row=mysql_fetch_assoc($res)){
echo "在{$tabname}. 中发现 id号为 {$id}";
}
//.....
思考: 如果我们做的是一个平安保险公司的一个订单(8999999999000000条)查询功能更.
,如何处理海量表?->按时间.
1. 分表的标准是依赖业务逻辑(时间/地区/....)
2. 安装字符不同. a-z
3. 我们给用户提供的查询界面一定是有条件,不能让用户进行大范围.(世界),如果需要的可以根据不同的规则,对应多套分表.
4. 检索时候,带分页条件,减少返回的数据.
5. 项目中,灵活的根据需求来考虑.
n 垂直分割
示意图:
一句话: 如果一张表某个字段,信息量大,但是我们很少查询,则可以考虑把这些字段,单独的放入到一张表中,这种方式称为垂直分割.
- 分表技术
- 什么是数据库分表技术
- 什么是数据库分表技术
- Mysql 的分表技术
- [数据库设计之]数据库分表技术
- mysql 分表技术 partition与auto_increment
- MySQL分表和分区技术
- 编译技术34分。。。
- Unity分屏技术
- Mysql分表查询引擎Merge技术总结
- 数据库基础知识(二)数据库分表技术
- 分库 分表
- 算法_分形技术
- HTML 窗口分帧技术
- 差分隐私保护技术
- Android 7.0分屏技术
- 第一次得了技术分--很开心的4分
- 分表
- Android中的长度单位详解(dp、sp、px、in、pt、mm)
- HDOJ 1159 Common Subsequence
- 文明能压碎,情怀不衰,无论枯干山水
- 嵌入式系统中“看门狗”
- 微云营销平台的优势
- 分表技术
- linux异步IO浅析
- Codeforces Round #129 (Div. 1) (各种好dp)
- JAVA--单例模式
- Cocos2d-x游戏开发之音效使用
- c语言中字符串比较易错的地方
- cocos2d-x初探学习笔记(4)--触屏事件
- Linux Socket编程
- ECHO命令的使用