
细节平时需要注意面试也会问道的细节
文章平均质量分 69
Happywuw
学习如逆水行舟,不近则退!
由于目前公司有很不错的学习平台,以及个人笔记平台,暂停博客更新。但也会定期把笔记批量更新到博客。
展开
-
MySQL索引失效的几种情况
1.索引不存储null值更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用is null条件时,因为索引上根本没Null值,不能利用到索引,只能全表扫描。为什么索引列不能存Null值?将索引列值进行建树,其中必然涉及到诸多的比较操作。Null值的特殊性就在于参与的运算大多取值为null。这样的话,nul转载 2017-10-13 11:05:03 · 2303 阅读 · 0 评论 -
MySQL InnoDB 逻辑存储结构
如果创建表时没有显示的定义主键,mysql会按如下方式创建主键:首先判断表中是否有非空的唯一索引,如果有,则该列为主键。如果不符合上述条件,存储引擎会自动创建一个6字节大小的指针。当表中有多个非空的唯一索引,会选择建表时第一个定义的非空唯一索引。注意根据的是定义索引的顺序,不是创建列的顺序。InnoDB逻辑存储结构表空间 tablespace(ibd文件)段 seg转载 2017-12-06 22:43:34 · 1191 阅读 · 0 评论 -
mysql索引的数据结构
索引 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如转载 2017-12-06 23:26:37 · 796 阅读 · 0 评论 -
数据库自增主键可能产生的问题
在MySQL中经常会配置自增长属性的字段作为主键,特别是使用InnoDB存储引擎,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,但是使用自增主键也可能会带来一些问题。举个例子,使用自增主键对数据库做分库分表,可能出现一些诸如主键重复等的问题,或者在数据库导入的时候,可能会因为主键出现一些问题。主要业务表的主键应该配置一个合理的策略,尽量避免自增AUTO_转载 2017-12-06 23:31:39 · 1660 阅读 · 0 评论 -
Redis的并发竞争问题如何解决
Redis的并发竞争问题,主要是发生在并发写竞争。考虑到redis没有像db中的sql语句,update val = val + 10 where ...,无法使用这种方式进行对数据的更新。假如有某个key = "price", value值为10,现在想把value值进行+10操作。正常逻辑下,就是先把数据key为price的值读回来,加上10,再把值给设置回去。如果只有一个连原创 2017-12-06 23:51:17 · 13735 阅读 · 0 评论