为了账号安全,请及时绑定邮箱和手机立即绑定
  • 这个例子中,可以把 explain select actor.first_name,actor.last_name,count(*) from film_actor inner join actor on actor.actor_id = film_actor.actor_id group by actor.actor_id\G 改写为 explain select actor.first_name,actor.last_name,c.cnt from actor inner join (select actor_id,count(*) AS cnt from film_actor GROUP BY actor_id) AS c USING(actor_id)\G
    查看全部
    3 采集 收起 来源:group by的优化

    2016-12-07

  • //mysql 数据库优化 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);
    查看全部
    3 采集 收起 来源:group by的优化

    2015-01-23

  • //mysql 数据库优化 Max()和Count()的优化 1.对max()查询,可以为表创建索引,create index index_name on table_name(column_name 规定需要索引的列),然后在进行查询 2.count()对多个关键字进行查询,比如在一条SQL中同时查出2006年和2007年电影的数量,语句: select count(release_year='2006' or null) as '2006年电影数量', count(release_year='2007' or null) as '2007年电影数量' from film; 3.count(*) 查询的结果中,包含了该列值为null的结果
    查看全部
  • 演示数据库安装链接<br> http://downloads.mysql.com/docs/sakila-db.zip<br> http://dev.mysql.com/doc/index-other.html<br> http://dev.mysql.com/doc/sakila/en/sakila-installation.html
    查看全部
    3 采集 收起 来源:数据准备

    2018-03-22

  • 数据库优化金字塔
    查看全部
    2 采集 收起 来源:MySQL优化简介

    2014-12-04

  • 数据表是按照行的方式进行存储的,一个数据表中包含了许多行,而每一行由不同的字段组成,这些字段称为列,这就是数据表的结构; 在查询的时候,如果没有指定索引,那么必须要对每一行都进行扫描,然后才能找到每行中被查询的字段,所以可以说,在没有索引的情况下,要扫描整个表才可以查询到需要的数据; 在添加了索引之后,那么会增加一个索引表,这个索引表记录了索引值 与 对应字段的关系,然后,以该字段进行的查询操作,将不再需要扫描原来的数据表的每一行,而是扫描这个建立的索引表,显然,这个索引表的IO的操作就比原来的数据表要小很多了,所以可以提升查询的速度,并且如果表的字段比较多的情况,那么建立索引的总用越明显;同时,因为要维护这个索引表,所以当进行增,删,改的时候,性能会相对下降; 覆盖索引,就是说 通过索引的值,在索引表中就可以找到需要的值
    查看全部
    2 采集 收起 来源:子查询的优化

    2018-03-22

  • io的优化 并不能减少阻塞 ,但sql索引没有优化好,则会产生大量的慢查询或阻塞,这是由于mysql的内部锁机制造成,所以硬件再好效果也不大
    查看全部
    2 采集 收起 来源:MySQL优化简介

    2014-12-12

  • 如果设计成3张表话,那么删除一个商品就得删除商品表和关联表。为什么不设计成俩张表 商品表(其中有分类字段id)和分类表 呢?
    查看全部
  • type: const(唯一「主键」查找), eq_reg(唯一索引的范围查找), ref(基于外键唯一索引的连接的查找), range(基于索引的范围查找), index(index scan), all(all table scan)
    查看全部
  • zhelibuhui
    查看全部
  • innodb_buffer_pool_size配置 innodb的缓冲池,如果数据库中只有innodb表,则推荐配置为总内存的75% innodb_buffer_pool_instances配置缓冲池的个数,默认是一个。 innodb_flush_log_at_trx_commit(0,1,2)提交的策略。 innodb_read_io_threads(默认是4) innodb_write_io_threads innodb_file_per_table,控制innodb每一个表使用独立的表空间,默认是OFF,造成IO瓶颈。推荐设置ON。 innodb_stats_on_metadata配置mysql在什么情况下刷新innodb表的统计信息。
    查看全部
  • 查看是否打开慢查询日志:

    show variables like 'slow_query_log';

    如果查到是off, 说明没有开启该功能, 使用如下命令开启:

    set global slow_query_log=on;

    查看是否将没有建立索引的查询列入慢查询记录:

    show variables like '%log%';

    显示的结果中有一项"log_queries_not_using_indexes"值为off, 说明没有开启, 使用下面的命令开启:

    set global log_queries_not_using_indexes=on;

    查看慢查询时间设置:

    show variables like 'long_query_time';

    显示的值为"0.00000"则表示要将所有查询记录到日志.

    设置慢查询时间设置:

    set global long_query_time=0;

    设置为零则记录所有查询信息. 

    使用如下命令查看查询日志的文件位置:

    show variables like 'slow%';

    可以看到有一项"slow_query_log_file"的值为"/var/lib/mysql/localhost-slow.log", 这就是慢查询日志文件的存放位置.

    查看全部
  • 服务器硬件优化:

         1.cpu选择:mysql一个sql的执行只能用到单核的cpu,其次,在复制进程的时候也是只能用到单核的cpu,所以cpu并不是越多越好,mysql5.5是的服务器不要超过32核,偏向选择单核频率更快的cpu;

        2.Disk IO 优化

        常用的RAID 级别简介

        RAID0: 也称为条带,多个磁盘接成一个使用,io最好(但是磁盘坏了,数据没了,安全性差)

        RAID1: 也称镜像,要求至少两个磁盘,每组磁盘存储的数据相同;

        RAID1+0:  就是RAID1和RAID0的结合,同时具备两个级别的优缺点,推荐数据库使用这个级别;

      目前可能还有更好的存储设备:比如ssd卡

    查看全部
  • 查看是否开启慢查询日志 show variables like 'slow_query_log'
    设置没有索引的记录到慢查询日志 set global log_queries_not_using_indexes=on
    查看超过多长时间的sql进行记录到慢查询日志 show variables like 'long_query_time'
    设置慢查询的时间 set long_query_time=1

    查看全部
  • Mysql 数据库优化 数据库优化的目的 避免出现页面访问错误 。由于数据库联接timeout产生页面5**错误 。由于慢查询造成页面无法加载 。由于阻塞造成数据无法提交 增加数据库的稳定性 。很多数据库问题都是由于低效的查询引起的 优化用户体验 。流畅页面的访问速度 。良好的网站功能体验
    查看全部
    2 采集 收起 来源:MySQL优化简介

    2015-04-21

举报

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

微信扫码,参与3人拼团

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

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