您现在的位置是:首页 >

sql创建存储过程 MySQL 5.0 数据库新特性的存储过程

火烧 2021-10-22 03:00:34 1076
MySQL 5.0 数据库新特性的存储过程   当你提交一个查询的时候 MySQL会分析它 看是否可以做一些优化使处理该查询的速度更快 这一部分将介绍查询优化器是如何工作的 如果你想知道MySQL采用

MySQL 5.0 数据库新特性的存储过程  

  当你提交一个查询的时候 MySQL会分析它 看是否可以做一些优化使处理该查询的速度更快 这一部分将介绍查询优化器是如何工作的 如果你想知道MySQL采用的优化手段 可以查看MySQL参考手册

  当然 MySQL查询优化器也利用了索引 但是它也使用了其它一些信息 例如 如果你提交如下所示的查询 那么无论数据表有多大 MySQL执行它的速度都会非常快

  SELECT * FROM tbl_name WHERE ;

  在这个例子中 MySQL查看WHERE子句 认识到没有符合查询条件的数据行 因此根本就不考虑搜索数据表 你可以通过提供一个EXPLAIN语句看到这种情况 这个语句让MySQL显示自己执行的但实际上没有真正地执行的SELECT查询的一些信息 如果要使用EXPLAIN 只需要在EXPLAIN单词放在SELECT语句的前面

  mysql> EXPLAIN SELECT * FROM tbl_name WHERE G   ***************************    row ***************************   id:   select_type: SIMPLE   table: NULL   type: NULL   possible_keys: NULL   key: NULL   key_len: NULL   ref: NULL   rows: NULL   Extra: Impossible WHERE

  通常情况下 EXPLAIN返回的信息比上面的信息要多一些 还包括用于扫描数据表的索引 使用的联结类型 每张数据表中估计需要检查的数据行数量等非空(NULL)信息

sql创建存储过程 MySQL 5.0 数据库新特性的存储过程

  优化器是如何工作的

  MySQL查询优化器有几个目标 但是其中最主要的目标是尽可能地使用索引 并且使用最严格的索引来消除尽可能多的数据行 你的最终目标是提交SELECT语句查找数据行 而不是排除数据行 优化器试图排除数据行的原因在于它排除数据行的速度越快 那么找到与条件匹配的数据行也就越快 如果能够首先进行最严格的测试 查询就可以执行地更快 假设你的查询检验了两个数据列 每个列上都有索引

  SELECT col FROM mytable   WHERE col = some value AND col = some other value ;

lishixinzhi/Article/program/MySQL/201311/29623  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码