• 数据库设计2


    数据设计2

    数据设计

    -数据存在冗余
    -数据表过宽 会影响修改表结构的效率 不经常使用的列放到其他表

    数据库设计范式

    -数据库分区
    -RANGE 按范围分区
    适用场景 分区键为日期或者时间类型
    -LIST分区的特点

    为customer_login_log表分区

    CREATE TABLE customer_login_log (
    login_id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '登录日志ID',
    customer_id int(10) unsigned NOT NULL COMMENT '登录用户ID',
    login_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '用户登录时间',
    login_ip int(10) unsigned NOT NULL COMMENT '登录IP',
    login_type tinyint(4) NOT NULL COMMENT '登录类型:0未成功 1成功',
    PRIMARY KEY (login_id)
    ) ENGINE=InnoDB
    PARITION BY RANGE ( YEAR(login_time) ) (
    PARTITION p0 VALUES LESS THAN (2015),
    PARTITION p1 VALUES LESS THAN (2016),
    PARTITION p2 VALUES LESS THAN (2017),
    );

    常见业务需求

    加索引

    SELECT COUNT(DISTINCT audit_status)/COUNT() AS audit_rate
    COUNT(DISTINCT product_id)/COUNT(
    ) AS product_rate
    FROM product_comment

    • 对评论进行分页展示
      select customer_id,title,content from product_comment where audit_status = 1 and product_id = 199726 limit 0,5
      索引IO加索引全部数据
      优化: 建立联合索引
      CREATE INDEX idx_productID_auditStatus ON product_comment(product_id,audit_status)

    删除评论表中对同一订单的重复评论 只保留最早的一条

    • 步骤一 查看是否存在同一订单同一商品的重复评论

    • 步骤二 备份product_comment表

    • 步骤三 删除同一订单的重复评论
      select order_id,product_id,COUNT() from product_comment group by order_id,product_id having COUNT() > 1;

      create table temp_product_comment20171117 select * from product_comment;

      delete a from product_comment a join (
      select order_id,product_id,MIN(comment_id) as comment_id
      group by order_id,product_id
      having COUNT(*) >= 2
      ) b on a.order_id=b.order_id and a.product_id=b.product_id and a.comment_id >b.comment_id

  • 相关阅读:
    vue 零散记录
    flex布局-弹性布局
    apply 和 call 的用法
    git版本控制系统重新认识
    Windows驱动过滤--kdbclass过滤,寒江独钓加强版
    Socket的select制作多客户端传输(Qt)
    基于g_soap制作的数据下载器,传输速度只有600kb 需改进
    lua中获取数组长度问题
    MySQL存储过程详解 mysql 存储过程(转:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html)
    lua接受C++返回值
  • 原文地址:https://www.cnblogs.com/weizaiyes/p/7850245.html
Copyright © 2020-2023  润新知