美文网首页
SQL优化之三--优化数据库对象

SQL优化之三--优化数据库对象

作者: 黄海佳 | 来源:发表于2018-09-11 19:53 被阅读11次

在数据库设计的时候,用户可能会遇到这种问题:是否应该把所有表都按照第三范式来设计?表里面的字段到底该设置为多大才合适?

一、优化表的数据类型

虽然在设计的时候需要考虑字段的长度留有一定的冗余,但不推荐很多字段留有很大的冗余,这样既浪费磁盘存储空间,同时在应用程序操作时也浪费物理内存。

在MySql 中可以使用函数PROCEDURE ANALYSE() 对当前应用的表进行分析,该函数可以对数据表中列的数据类型提出优化建议。

select * from tbl_name PROCEDURE ANALYSE();
//不要为包含的值多于16个或者256个字节的ENUM类型提出建议
select * from tbl_name PROCEDURE ANALYSE(16,256);

二、通过拆分提高表的访问效率

  • 垂直拆分
  • 水平拆分

三、逆规范化

规范化越高,产生的关系越多,关系多直接结果就是导致表之间的连续操作越频繁。反规范的好处就是降低连续操作的需求、降低外码和索引的数目,还可能减少表的数目。

  • 增加冗余列
  • 增加派生列
  • 重新组表
  • 分割表

四、使用中间表提高统计查询速度

对于数据量较大的表,在其进行统计查询会效率很低,我们可以通过中间表进行查询。中间表的有点是:

  • 在中间表上做统计查询不会对在线应用产生负面的影响
  • 中间表可以灵活添加索引或者临时增加新字段,从而提高统计查询效率和辅助统计查询作用。

中间表的原理
查询最近一周的数据
insert into tmp_table select * from table where create_time>(now(),-7)

相关文章

  • SQL优化之三--优化数据库对象

    在数据库设计的时候,用户可能会遇到这种问题:是否应该把所有表都按照第三范式来设计?表里面的字段到底该设置为多大才合...

  • SQL语句优化, since 2022-04-22

    (2022.04.22 Fri)SQL语句的优化目的在于提高SQL语句的运行效率。注意SQL优化和数据库优化的区别...

  • MySQL优化

    数据库SQL优化大总结之 百万级数据库优化方案

  • MySQL优化框架

    1,SQL语句优化 2,索引优化 3,数据库结构优化 4,InnoDB表优化 5,MyISAM表优化 6,Memo...

  • Mysql数据库优化

    数据库优化顺序:Sql及索引->数据库表结构->系统配置->硬件 第一章:Sql语句优化 如何判断有问题Sql? ...

  • Web性能优化常见技巧

    阶段一:访问网页地址 阶段二:发出请求:http请求优化 阶段三:访问数据库 (SQL数据库优化)后端优化 阶段四...

  • Mysql 优化提纲

    SQL & 索引 通过慢日志找到待优化的SQLs; explain 查询分析SQL执行计划; 索引优化; 数据库结...

  • MySQL技术专题(11)🌲优化专区-Sql优化

    一.SQL优化 1.Sql优化就是指语句在执行的时候效率不是那么乐观所以提高Sql优化就是指在数据库的执行速度的。...

  • mysql数据库优化 摘要

    数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和I...

  • 数据库查询优化器

      所谓查询优化,目标是关系数据库下或者 newSQL 的 SQL Server 层对 SQL 语句进行优化,在不...

网友评论

      本文标题:SQL优化之三--优化数据库对象

      本文链接:https://www.haomeiwen.com/subject/hdfpgftx.html