为了账号安全,请及时绑定邮箱和手机立即绑定
  • 表的垂直拆分的原则 所谓垂直拆分,就是把原来一个有很多列的表拆分成多个表解决表的宽度问题,通常拆分原则如下: 1、把不常用的字段单独存放到一个表中 2、把大字段独立存放到一个表中 3、把经常一起使用的字段放到一起
    查看全部
  • 反范式化:为了查询效率的考虑,把原本符合第三范式的表适当增加冗余,以达到优化查询效率的目的。以空间换取时间的操作。
    查看全部
  • 121
    查看全部
  • 数据表结构优化 第三范式:要求数据库中不存在非关键字段对任意候选关键字的传递函数依赖 不符合第三范式要求的表存在以下问题: 1.数据冗余:(分类、分类描述)对于每一个商品都会进行记录 2.数据插入异常 3.数据更新异常 4.数据删除异常
    查看全部
  • 使用bigint 存储ip地址INET_ATON INET_NTOA
    查看全部
  • 使用int类型存储日期时间,利用FROM_UNIXTIME(),UNIX_TIMESEAMP()两个函数转换
    查看全部
  • 冗余索引(将已经建立索引的列又和另外一个列一起组合创建了一个索引)如下图所示:
    查看全部
  • 过多的索引不但影响写入,而且影响查询,索引越多,分析越慢 如何找到重复和多余的索引,主键已经是索引了,所以primay key 的主键不用再设置unique唯一索引了 冗余索引,是指多个索引的前缀列相同,innodb会在每个索引后面自动加上主键信息 冗余索引查询工具 pt-duplicate-key-checker
    查看全部
  • 选择合适的索引列<br> 1.在where,group by,order by,on从句中出现的列<br> 2.索引字段越小越好(因为数据库的存储单位是页,一页中能存下的数据越多越好 )<br> 3.离散度大得列放在联合索引前面<br> select count(distinct customer_id), count(distinct staff_id) from payment;<br> 查看离散度 通过统计不同的列值来实现 count越大 离散程度越高 离散度,我的理解就是唯一性了,比如主键,绝对是离散度最大的,而一些用来标识状态标识的列,基本只有几个可选项,离散度就很小
    查看全部
  • 优化步骤2: 使用这种方式有一个限制,就是主键一定要顺序排序和连续的,如果主键出现空缺可能会导致最终页面上显示的列表不足5条,解决办法是附加一列,保证这一列是自增的并增加索引就可以了
    查看全部
  • 使用索引或者主键来进行order by操作
    查看全部
  • limit常用于分页处理,时常会伴随order by从句使用,因此大多时候会使用Filesorts这样会造成大量的io问题 1.使用有索引的列或主键进行order by操作 2.记录上次返回的主键,在下次查询时使用主键过滤 使用这种方式有一个限制,就是主键一定要顺序排序和连续的,如果主键出现空缺可能会导致最终页面上显示的列表不足5条,解决办法是附加一列,保证这一列是自增的并增加索引就可以了
    查看全部
  • group by可能会出现临时表(Using temporary),文件排序(Using filesort)等,影响效率。 可以通过关联的子查询,来避免产生临时表和文件排序,可以节省io 改写前 select actor.first_name,actor.last_name,count(*) from sakila.film_actor inner join sakila.actor using(actor_id) group by film_actor.actor_id; 改写后 select actor.first_name,actor.last_name,c.cnt from sakila.actor inner join( select actor_id,count(*) as cnt from sakila.film_actor group by actor_id )as c using(actor_id);
    查看全部
    2 采集 收起 来源:group by的优化

    2016-05-20

  • 对于子查询的优化,可以优化成为join方式查询, 但是这样子查询的话如果是一对多的关系,那么就要注意去重, 可以用distinct关键字去重
    查看全部
    0 采集 收起 来源:子查询的优化

    2016-05-20

  • count(列名)统计的是不包括NULL在内的行数,而count(*)则是统计所有,所以为了包含NULL,在写法上应该是count(列名 OR NULL)
    查看全部

举报

0/150
提交
取消
课程须知
想要学好这门课程,你需要具备MySQL数据库的基本知识,如果具有相关的工作经验并且希望能提升工作技能的话,这门课程就再适合不过了。
老师告诉你能学到什么?
1、了解数据库优化的各个方面的方法和技巧 2、如何对SQL语句和索引进行优化 3、如何对数据库结构及运行环境进行优化

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!