zoukankan      html  css  js  c++  java
  • 阿里云分布式关系数据库DRDS笔记

    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,对日期用日期函数
  • 相关阅读:
    -bash java: cannot execute binary file (华为鲲鹏云)
    Centos7.6编译安装数据库mysql5.7.22(华为鲲鹏云服务器案例)
    华为鲲鹏云服务器编译安装mysql-5.7.27 报错error: could not split insn
    centos7.6安装nginx并设置开机自启
    ansible常用模块实例
    Nginx、tomcat日志切割
    Linux系统文件系统损坏修复实例
    Rest模式get,put,post,delete含义与区别(转)
    从关系型数据库到非关系型数据库
    SQL Server 2012 Express LocalDB 的作用
  • 原文地址:https://www.cnblogs.com/alisande/p/5409023.html
Copyright © 2011-2022 走看看