mysql优化 & mysql数据库表设计过程中几个关键要点

目录

1、表设计过程中应该注意的点即数据类型

2、索引设计过程中应该注意的点(优化首先要考虑的)

   1)选择唯一性索引

   2)为经常需要排序、分组和联合操作的字段建立索引

   3)  常作为查询条件的字段建立索引

   4)  数据少的地方不必建立索引

 3、sql优化,explain查看执行计划


简介:数据库表score_flow(积分流水表 增减活跃度的来源)、user_score(用户积分表总表

        设计,用于:1)查top100

                              2)查用户的排名

    2、浅谈mysql数据库表设计过程中几个关键要点

   1、表设计过程中应该注意的点即数据类型

          1)更的通常更好

             控制字节长度

          2)使用合适的数据类型

          如tinyint只占8个位,char(1024)与varchar(1024)的对比,

          char用于类似定长数据存储比varchar节省空间(varchar要有长度等信息),如:uuid(32),可以用char(32).

          3)尽量避免NULL建议使用            NOT NULL DEFAULT ' '      

                                                                  NOTNULL DEFAULT 0

          NULL的列会让索引统计和值比较都更复杂

          可为NULL的列会占据更多的磁盘空间,在Mysql中也需要更多复杂的处理程序

 

2、索引设计过程中应该注意的点(优化首先要考虑的)

   1)选择唯一性索引

   可以通过程序的方法实现(查全表)性能会有损耗(某一时刻    同时都插入相同的字段值)可能会导致不一致的情况的出现

   DB的唯一索引强制行的东西

    唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录,保证物理上面唯一

   2)为经常需要排序、分组和联合操作的字段建立索引

    经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间

 

   3)  常作为查询条件的字段建立索引

     如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速度       

   4)  数据少的地方不必建立索引

全表的1/3都用状态2  建立索引也不能提高查询的效率  

user_id的值只有一个 建立索引就会提高查询的效率

 

 3、sql优化,explain查看执行计划

 

type  外键关联

(注意:扫描行数会影响CPU运行,占用大量内存)

         1) 能够用BETWEEN的就不要用IN (树形结构  in扫的行数更多)

         2) 能够用DISTINCT的就不用GROUP BY

         3)  避免数据类型强转()

         4) 学会采用explain查看执行计划

       

 

 

续:org.mybatis.generator配置

        引入:       

<dependency>

      <groupId>org.mybatis.generator</groupId>

      <artifactId>mybatis-generator-core</artifactId>

      <scope>test</scope>

      <version>1.3.2</version>

      <optional>true</optional>

</dependency>

<dependency>

      <groupId>commons-io</groupId>

      <artifactId>commons-io</artifactId>

      <version>2.5</version>

</dependency>      

 只需写这三个然后运行generator就可自动生成mapper和domain

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智达教育‍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值