加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_马鞍山站长网 (https://www.0555zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

如何高效快速地优化MySQL、SQL语句(附源码)

发布时间:2021-01-08 07:23:11 所属栏目:站长百科 来源:网络整理
导读:副标题#e# 《如何高效快速地优化MySQL、SQL语句(附源码)》要点: 本文介绍了如何高效快速地优化MySQL、SQL语句(附源码),希望对您有用。如果有疑问,可以联系我们。 作者介绍 韩锋,宜信技术研发中心数据库架构师.精通多种关系型数据库,曾任职于当当网、TOM

EXPLAIN除了可以显示执行计划外,还可以显示SQL改写.所谓SQL改写,是指MySQL在对SQL语句进行优化前,会基于一些原则进行语句的改写,以方便后面的优化器进行优化生成更优的执行计划.该功能是通过EXPLAIN EXTENDED+SHOW WARNINGS配合使用.下面通过示例说明一下.

从上面示例中,可看到原有语句中的IN子查询被改写成为表间关联的方式.

2、统计信息

查看统计信息也是优化语句中必不可少的一步.通过统计信息可以快速了解对象的存储特征如何.下面说明主要的两类统计信息——表、索引.

表统计信息 — SHOW TABLE STATUS

  • Name:表名
  • Engine:表的存储引擎类型(ISAM、MyISAM或InnoDB)
  • Row_format:行存储格式(Fixed-固定的、Dynamic-动态的或Compressed-压缩的)
  • Rows:行数量.在某些存储引擎中,例如MyISAM和ISAM他们存储了精确的记录数.不过其他存储引擎中,它可能只是近似值.
  • Avg_row_length:平均行长度.
  • Data_length:数据文件的长度.
  • Max_data_length:数据文件的最大长度.
  • Index_length:索引文件的长度.
  • Data_free:已分配但未使用了字节数.
  • Auto_increment:下一个autoincrement(自动加1)值.
  • Create_time:表被创造的时间.
  • Update_time:数据文件最后更新的时间.
  • Check_time:最后对表运行一个检查的时间.执行mysqlcheck命令后更新,仅对MyISAM有效.
  • Create_options:额外留给CREATE TABLE的选项.
  • Comment:当创造表时,使用的注释(或为什么MySQL不能存取表信息的一些信息).
  • Version:数据表的’.frm’文件版本号.
  • Collation:表的字符集和校正字符集.
  • Checksum:实时的校验和值(如果有的话).

3、索引统计信息 — SHOW INDEX

(编辑:网站开发网_马鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!