数据库优化

- 优化思路

  • 创建索引,索引对经常查询的字段创建索引,不要索引过多,过多的索引会影响写入的效率,对查询也有影响。
  • 合理的数据库设计
  • 按照数据库的三范式进行表结构的设计 第一范式:数据表中的每个字段都是不可拆分的最小单元,确保每一列的原子性
    第二范式:满足第一范式之后,表中的每一列必须保持唯一性,都必须依赖主键
    第三范式:满足第二范式之后,表中每一列只与主键直接相关而不是间接相关,字段没有冗余。
  • 可以根据场景合理的反规范化:1、分割表 2、保留冗余字段 3、增加派生列
  • 数据库的五大约束: 1、主键约束 2、唯一性约束 3、默认值约束 4、非空约束 5、外键约束
  • 字段类型选择: 1、尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数而非INT
    2、尽量使用TIMESTAMP而非DATETIME 3、避免使用NULL字段,很难查询优化占用额外索引空间

sql语句优化:

  • 1、尽量少用自带的函数
  • 2、连续数值条件使用BETWEEN 不用IN
  • 3、不要使用select *
  • 4、尽量使用数字型字段,若只含数值信息的不要设计为字符型
  • 5、表之间的关联通过一个冗余字段连接比用JOIN有更好的性能
  • 6、尽量使用select count(1)而不是select count(),使用select count()会引起全盘的扫描
  • 7、尽量不要使用LIKE %
  • 8、尽量不要在where子句中对字段进行null的判断,不然会导致引擎放弃索引而全盘扫描
  • 9、避免在where子句中中使用!=或<>操作符
  • 10、避免在where子句中使用or来连接条件

数据表的优化:

  • 分表 :如果数据量很大,超过百万级别,则需要对表进行水平分表
    如果一张表某些字段比较大并且很少使用,可以将这些字段隔离单独一张表,通过外键连接
  • 读写分离: 使用负载均衡实现,写操作都往主库上写,读操作都在从服务器读
  • 使用缓存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值