- 博客(6)
- 收藏
- 关注
原创 Redis 数据结构
简单动态字符串(SDS)SDS定义:struct sdshdr{ int len ;//记录SDS字符串的长度 int free;//记录buf数组中未使用的数量 char buf[];//用于保存字符串}拼接字符串时,如果数组长度不够,会进行内存的重新分配,为了减少内存的重新分配引起的系统开销,会进行空间预分配。SDS的长度小于1M时,会分配和len等长大小的未使用空间,长度大...
2018-06-01 16:11:03
170
原创 msyql 范围读取优化
8.2.1.10(多范围读取优化)MRR:当表很大并且没有存储在存储引擎的缓存中时,使用二级索引上的范围扫描读取行可能导致许多随机磁盘访问基表。通过磁盘扫描多范围读取(MRR),MySQL通过首先扫描二级索引并收集相关行的,尝试减少范围扫描的随机磁盘访问次数。然后对键进行排序,最后使用主键的顺序从基表中检索行。MRR目的是减少随机磁盘访问的次数,而不是实现基本表数据的更多顺序扫描。8.2.1.13...
2018-05-04 17:47:56
125
原创 mysql 优化
people表中(zipcode,lastname,firstname)构成一个索引。如果没有使用索引下推技术,则MySQL会通过zipcode='95054'从存储引擎中查询对应的元祖,返回到MySQL服务端,然后MySQL服务端基于lastname LIKE '%etrunia%'和address LIKE '%Main Street%'来判断元祖是否符合条件。如果使用了索引下推技术,则MYS...
2018-05-04 11:11:58
103
原创 mysql where 语句优化
where语句: 1. 在查询中先读取所有常量表,常量表包含一下两种类型:①空表或者只有一条记录的表②where查询的条件为表的主键或者唯一索引,有索引的列与常量比较并且是非空2. join查询如果 ORDER BY和GROUP BY子句来自同一个表,那么在查询时首先选择该表。3. 如果有一个ORDER BY子句和一个不同的GROUP BY子句,或者如果 ORDER...
2018-05-03 16:34:31
736
原创 mysql SELECT 查询优化
8.2.1 Optimizing SELECT Statements1.mysql从磁盘上查找数据通常小于10ms,理论上1s中可以找到100片数据2.为了SELECT ... WHERE加快查询速度,在WHERE子句中使用的列上设置索引,对于join不同表的查询,索引尤其重要3.避免查询时函数的使用,查询出来的每一行结果要进行函数调用4.尽量减少全表扫描次数5.通过ANALYZE TABLE命令...
2018-05-03 11:17:17
305
原创 mysql 5.7 官网资料整理
14.1.2 InnoDB表的最佳做法 1.经常查询的一列或者多列设置主键,如果 如果没有明显的主键,则指定一个 自动递增的主键 2.为了加快join查询,最好定义外键依赖,并且连接字段的数据类型相同 3.关闭自动提交。 4.DML操作分组使用事务,...
2018-05-02 14:13:22
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人