数据库优化<四>SQL优化之SELECT优化—mysql Innodb索引

原创 2013年12月05日 17:39:54

在mysql的存储引擎Innodb中,有聚簇索引(clustered index)和附属索引(secondary index),

聚簇索引(clustered index):

         将数据和索引一起存放,即数据的存放顺序根据聚簇索引来存的,其中聚簇索引有以下几种情况:

                 1,如果表有主键primary key,则聚簇索引为主键索引

                 2,没有主键索引,但有非空(not null)的唯一索引,innodb会把第一个这样的索引当作聚簇索引

                 3,如果没有主键索引,也没有唯一键索引,则innodb自动生成一个包含6字节长的字段来建立聚簇索引


附属索引(secondary index):

         所有的除了聚簇索引的索引都是附属索引,他的实现方法是:以聚簇索引的结构为基础(因为聚簇索引和

         数据绑定了),索引中包含聚簇索引的所有列,然后加上一些标识信息,组成索引,查询的时候,先通过

         标识找到对应的附属索引,然后通过主键索引来这找到对于的数据,因此,访问主键是最快的


相关文章推荐

mysql innodb 性能优化

默认情况下,innodb的参数设置的非常小,在生产环境中远远不够用比如最重要的两个参数innodb_buffer_pool_size 默认是8Minnodb_flush_logs_at_trx_com...

MySQL系列—如何优化你的 SQL SELECT 语句性能

SELECT语句的性能调优有时是一个非常耗时的任务,在我看来它遵循帕累托原则。20%的努力很可能会给你带来80%的性能提升,而为了获得另外20%的性能提升你可能需要花费80%的时间。除非你在金星工作,...

MySQL数据库优化之SQL及索引

Mysql优化之sql语句等
  • yyywyr
  • yyywyr
  • 2015年08月16日 17:40
  • 488

mysql数据库性能优化(包括SQL,表结构,索引,缓存)

优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考...

Mysql 数据库优化--查询缓存及sql语句优化-索引优化,史上最全最全

查询执行基础知识 show processlist来查看当前有何进程 查询缓存 Mysql的cache功能的原理是,如果开启mysql的缓存功能,mysql自动将select语句按一定的规则生成二进...

mysql select中子查询中使用强制索引的优化案例

1,朋友找我帮忙看下比较慢的sql语句SELECT pg.product_goods_id, pg.product_id, pg.pdt_code, pg.pdt_na...
  • mchdba
  • mchdba
  • 2015年11月05日 20:18
  • 6303

MySQL数据库性能优化之存储引擎选择(MyISAM、InnoDB、NDBCluster)

前言 MySQL 的存储引擎可能是所有关系型数据库产品中最具有特色的了,不仅可以同时使用多种存储引擎,而且每种存储引擎和MySQL之间使用插件方式这种非常松的耦合关系。 由于各存储引擎功能...

innoDB锁问题-《深入浅出Mysql--数据库开发、优化与管理维护》

【转载】InnoDB锁问题 -《深入浅出MySQL——数据库开发、优化与管理维护》 博客分类: MySQL links: http://blog.sina.com.cn/s/bl...
  • VMA_LMA
  • VMA_LMA
  • 2013年05月29日 13:27
  • 680

数据库索引设计与优化读书笔记--《四》为SELECT语句创建理想的索引

磁盘及CPU时间的基础假设I/O时间: 随机读 10ms(4KB或8KB的页) 顺序读 40MB/s 顺序扫描的CPU时间:6XZX 检查一行记录 5us FETCH 10...

Oracle与MySQL数据库索引设计与优化

  • 2017年10月26日 08:53
  • 58.51MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库优化<四>SQL优化之SELECT优化—mysql Innodb索引
举报原因:
原因补充:

(最多只允许输入30个字)