1.Join左边的表查询数据越少,性能越好

2.广播表作为Join的驱动表
3.SQL的Limit优化
SELECT *
FROM t_order o
WHERE o.id IN (
SELECT id
FROM t_order
ORDER BY id
LIMIT 10000,2 )

SQL的ORDER BY 优化

这么写会报错
select buyer_id,
count(*) as maxSize
from t_trade
group by buyer_id
order by maxSize desc
limit 1
 
在 INSERT / REPLACE 语句中必须包含分库分表的字段(拆分键)
INSERT INTO table VALUES (‘name1’, ‘value2’)

报错
INSERT INTO table (id, name, value) VALUES (1, ‘name1’, ‘value2’)

允许执行
 
SELECT / UPDATE / DELETE 语句如果 WHERE条件中没有包含拆分字段,或者带的拆分字段不全,会进行全表扫描
SELECT * FROM table WHERE id = 1 AND date > 3;

进行路由计算
SELECT * FROM table WHERE id = 1;

需要进行全表扫描
 
SELECT / UPDATE / DELETE 语句如果在 WHERE 条件中带有全部拆分字段,——则拆分字段之间的逻辑关系一定是AND, 不支持OR; 对于同一个拆分字段的条件组合,用 AND 或者 OR 都是支持的。
SELECT * FROM table WHERE id = 1 AND date > ‘2014/1/30’;

AND ——正确组合。
SELECT * FROM table WHERE id = 1 OR date > ‘2014/1/30’;

OR ——错误组合
SELECT * FROM table WHERE id > 1 AND date > ‘2014/1/30’ AND date < ‘2014/3/1’;

AND ——正确组合
SELECT * FROM table WHERE id > 1 AND date < ‘2014/2/1’ OR date > ‘2014/2/28’;

AND ——正确组合。date 字段的条件组合是 OR
 
同一个拆分字段,AND 连接的条件个数只能为2,OR 连接的条件个数不限。
SELECT * FROM table WHERE date > ‘2014/1/30’ AND date < ‘2014/3/1’;

正确,date 字段 AND 连接的条件个数是 2。
SELECT * FROM table WHERE date > ‘2014/1/30’ AND date < ‘2014/3/1’ AND date < ‘2014/2/28’;

错误,date 字段 AND 连接的条件个数是 3
 
同一个拆分字段的条件可以包含多个值,但每个值只能对应一种比较关系。
SELECT * FROM table WHERE date > ‘2014/1/30’ AND date < ‘2014/3/1’;

正确,date 字段两个条件的值分别是 ‘2014/1/30’ 和 ‘2014/3/1’。
SELECT * FROM table WHERE date > ‘2014/1/30’ AND date < ‘2014/1/30’

错误,date 字段的条件值 ‘2014/1/30’ 同时对应了大于和小于关系。
 

切分方案

一般对于name和id用hash,对日期用日期函数

阿里云分布式关系数据库DRDS笔记的更多相关文章

  1. Typora+PicGo+阿里云写博客笔记

    Typora+PicGo+阿里云写博客笔记 选择这三个工具的理由 我一直有在使用typora使用mardown写作,毕竟typora很香,可以实时预览,非常丝滑. 配合上PicGo这个图床工具简直绝了 ...

  2. .net core 使用阿里云分布式日志

    前言 好久没有出来夸白了,今天教大家简单的使用阿里云分布式日志,来存储日志,没有阿里云账号的,可以免费注册一个 开通阿里云分布式日志(有一定的免费额度,个人测试学习完全没问题的,香) 阿里云日志地址: ...

  3. 阿里云分布式缓存OCS与DB之间的数据一致性

    [分布式系统的数据一致性问题]   OCS概要介绍 据AlertSite网络分析公司表示,Facebook的响应时间在2010年平均为1秒钟,到2011年中期已提高到了0.73秒.对比来看,响应时间占 ...

  4. 阿里云CentOS部署小笔记

    快毕业了,我用近两周的时间完成了一个nodeJs+Vue-Cli+Mysql的毕业设计,到了部署的时候了. 然而,博主使用Linux的经验有限得很,所以只能自己慢慢地填坑了. 一.准备工作 1)阿里云 ...

  5. 阿里云数据库配置学习笔记(二):下载并配置MySQL数据库

    参考资料:阿里云官方文档 2018-02-20 一.MySQL数据库的下载 在Ubuntu环境下安装MySQL数据库十分简单 在命令行中输入 sudo apt-get update(更新软件源,预防出 ...

  6. 阿里云 RDS 与 DRDS 学习了解

    RDS 主页:https://help.aliyun.com/document_detail/26092.html?spm=5176.7741872.6.539.4h8LSC DRDS 主页:http ...

  7. 阿里云上安装vsftp笔记

    安装 ftp 1 ssh登录服务器       首先检查有没有安装运行 ps -ef |grep vsftpd         2 yum安装vsftpd        yum安装    yum in ...

  8. 云时代的分布式数据库:阿里分布式数据库服务DRDS

    发表于2015-07-15 21:47| 10943次阅读| 来源<程序员>杂志| 27 条评论| 作者王晶昱 <程序员>杂志数据库DRDS分布式沈询 摘要:伴随着系统性能.成 ...

  9. 跨时代的分布式数据库 – 阿里云DRDS详解(转)

    原文章地址:https://www.csdn.net/article/a/2015-08-28/15827676 跨时代的分布式数据库 – 阿里云DRDS详解 发表于2015-08-28 18:39| ...

随机推荐

  1. [NHibernate]持久化类(Persistent Classes)

    系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 引言 持久化类是应用程序用来解决商业问题的类(比如,在电子交易程序中的Customer和Orde ...

  2. tyvj1191 迎春舞会之三人组舞

    背景     HNSDFZ的同学们为了庆祝春节,准备排练一场舞 描述     n个人选出3*m人,排成m组,每组3人.    站的队形——较矮的2个人站两侧,最高的站中间.    从对称学角度来欣赏, ...

  3. UI第九节——UIStepper

    - (void)viewDidLoad {    [super viewDidLoad];        // 实例化UIStepper,大小是固定的    UIStepper *stepper = ...

  4. 完整的PHP MYSQL数据库类

    <?php class mysql {     private $db_host; //数据库主机     private $db_user; //数据库用户名     private $db_ ...

  5. thinkphp一对多HAS_MANY

    关联关系通常我们所说的关联关系包括下面三种:一对一关联 :ONE_TO_ONE,包括HAS_ONE 和 BELONGS_TO 一对多关联 :ONE_TO_MANY,包括HAS_MANY 和 BELON ...

  6. Oracle 查看某表 被哪些表外键引用

    分2步骤: 1. select * from user_constraints e where e.table_name='xxx'; 2. select a.constraint_type,a.ta ...

  7. word20161214

    MAC, Message Authentication Code / 消息验证代码 MAC address / MAC 地址 machine-centric / 机器中心的 Macintosh-acc ...

  8. xmind portable

    portable : http://dl2.xmind.cn/xmind-7.5-update1-portable.zip

  9. go:defer

    defer:延迟. 假设有调用函数A.被调用函数B,其关系如下: func A(){//调用函数 ... defer B()//被调用函数 ... return//B将延迟到return前执行 } * ...

  10. 全选、取消、2级 checkbox的选中切换

    需求:点击父级checkbox的时候,子级出现全选或全取消:点击子级时,如:子级都是在未选中时,点击某一个子级,则父级选中:如:子级中只有一个选中状态(其他子级都是未选中),点击该子级,则父级也改为未 ...