摘要: 优化shema、SQL语句 索引 缓存 主从复制,读写分离 数据拆分。垂直拆分,分布式;水平拆分,选择sharding key,改变表结构做一定的冗余,SQL语句尽量带sharding key 优化分页,减少加载的数据 优化分页: 子查询。比如,select * from table where a 阅读全文
posted @ 2020-03-21 17:56 Ivy_Xu 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 建立服务器与数据库连接 数据库拿到SQL 解析执行 读取数据到内存,进行业务逻辑处理 发给客户端 关闭连接,释放资源 阅读全文
posted @ 2020-03-21 17:17 Ivy_Xu 阅读(1106) 评论(0) 推荐(0) 编辑
摘要: 存储引擎Storage engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。 常见存储引擎: InnoDB:支持ACID事务,提供行级锁和外键的约束。处理大数据容量 MyISAM:不提供事务支持,不支持行级锁和外键 memory:数据存在内存 InnoDB与MyIS 阅读全文
posted @ 2020-03-21 17:09 Ivy_Xu 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 第一范式:每个列不可拆分 第二范式:在第一范式上,非主键列完全依赖主键,而不能依赖主键一部分 第三范式:在第二范式上,非主键列只能依赖主键,不依赖其他非主键 设计数据库结构,尽量遵守3范式。考虑性能等问题,可以不严格遵守。 阅读全文
posted @ 2020-03-21 16:55 Ivy_Xu 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 我们以MySQL为例,来说明btree索引算法和hash索引算法。首先,我们先了解一下索引,以及btree和hash是什么。 索引原理 索引用来快速寻找特定的数据值,如果没有索引,查询时需要遍历整张表。原理大概是这样: 把创建了索引的列内容排序 排序结果生成倒排表 在倒排表内容上拼上数据地址 在查询 阅读全文
posted @ 2020-03-21 15:20 Ivy_Xu 阅读(1852) 评论(0) 推荐(0) 编辑
摘要: 一、聚簇索引 数据与索引放在一起,找到索引就找到数据 二、非聚簇索引 数据与索引存储分开 这里说的数据与索引一起还是分开指的是在btree叶子节点是否只存在索引。 使用场景 动作描述 使用聚簇索引 使用非聚簇索引 列经常被分组排序 应 应返回某范围内的数据 应 不应一个或极少不同值 不应 不应小数目 阅读全文
posted @ 2020-03-21 14:17 Ivy_Xu 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 组合索引,就是多个列组成一个索引。 划重点:最左前缀匹配原则是组合索引最重要的一个原则。 什么意思呢?我们举例说明,a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d 阅读全文
posted @ 2020-03-21 13:58 Ivy_Xu 阅读(3549) 评论(0) 推荐(0) 编辑