索引选择错误而导致了选择索引错误,那有什么办法修正呢
索引选择错误而导致了选择索引错误,那有什么办法修正呢
通过 analyze table来重新统计表的信息,
通过 force index(“索引名”)强制指定索引,
通过手动改变 sql 的语义,诱导优化器做出正确的选择。
索引失效时机
索引失效时机
模糊查询以 “%”开头索引失效,因为不确定 % 的值
使用 or 的时候会失效,如果使用 or 要求条件两边都要有索引,才会使用索引,如果其中一边有一个字段没有索引,那么另一个字段上的索引也会失效。
使用复合索引的时候,没有使用第一索引列查找
最左前缀原则
...
索引存放的位置
索引存放的位置
InnoDB为聚簇索引,索引和数据一起存放在后缀为ibd文件中
Myisam是非聚簇索引,索引和数据分开存放,索引存放在myi后缀文件中,数据存放在myd后缀文件中
索引
[TOC]
索引基本介绍在任何数据库当中 主键上都会自动添加对象,另外 在mysql中一个字段如果有unique约束的话,也会创建索引对象。
在任何数据库中,任何一张表的任何一条记录在硬盘存储上都有一个硬盘的物理存储编号。
在mysql中,索引是一个单独的对象,不同的存储引擎以不同的形式存在,在 M ...
如何进行索引优化?
如何进行索引优化?
聚簇索引和非聚簇索引的区别
聚簇索引和非聚簇索引的区别
1. 聚集索引即索引结构和数据一起存放的索引。主键索引属于聚集索引,其叶子节点存放的是行数据。
优点:聚集索引的查询速度非常的快,因为整个B+树本身就是一颗多叉平衡树,叶子节点也都是有序的,定位到索引的节点,就相当于定位到了数据。
缺点:1. 依赖 ...
覆盖索引
覆盖索引
如果一个索引包含(或者说覆盖)所有需要查询的字段的值,我们就称之为“覆盖索引”。我们知道在 InnoDB 存储引擎中,如果不是主键索引,叶子节点存储的是主键+列值。最终还是要“回表”,也就是要通过主键再查找一次。这样就会比较慢覆盖索引就是把要查询出的列和索引是对应的,不做回表 ...
如何实现静态代理?有啥缺陷?
如何实现静态代理?有啥缺陷?
静态代理实现步骤:
定义一个接口及其实现类;
创建一个代理类同样实现这个接口
将目标对象注入进代理类,然后在代理类的对应方法调用目标类中的对应方法。这样的话,我们就可以通过代理类屏蔽对目标对象的访问,并且可以在目标方法执行前后做一些自己想做的事情。
静态 ...
面向对象和面向过程的区别
面向对象和面向过程的区别
面向过程 :面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。
面向对 ...
基本数据类型及占用字节
基本数据类型及占用字节
对于 boolean,官方文档未明确定义,它依赖于 JVM 厂商的具体实现。逻辑上理解是占用 1 位,但是实际中会考虑计算机高效存储因素。