![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 91
arthasking123
这个作者很懒,什么都没留下…
展开
-
《高性能MySQL》 第五章 索引 读书笔记
索引索引基础B-TREEMYSIAMMYSIAM索引物理位置使用前缀索引INNODB索引行主键按照原数据索引适用范围:全键值、键值范围或键前缀査找限制如果不是按最左列开始查找,则无法使用索引不能跳过索引中的列,如3个键的联合索引,查询如果只按第一列和第三列进行WHERE过滤,则无法使用索引如果某列按范围查询,则右边剩余列均无法使用索引举个例子:含有3个列的复合索引A B C,对于A=‘a’ ,B>=3,C=4 则索引只能用到A B.原创 2020-12-11 19:23:59 · 221 阅读 · 0 评论 -
《高性能MySQL》 第四章 Schema与数据类型优化 读书笔记
Schema与数据类型优化选择优化的数据类型简单就好所占用的空间和CPU处理周期数更少避免NULL允许为NULL的索引占用更多的空间(每个索引占用额外1个BIT)可以考虑NULL的情况:列值很稀疏(NULL值很多的情况)整数类型TINY SMALL MEDIUM INT BIG实数类型DECIMAL只是一种存储格式,MySQL5.0以上支持存储65位,在运算时仍会转为double只在进行精确的小数计算时建议选择DECIMAL,如果数据量较大时,可以使用BIGINT计算避.原创 2020-12-02 18:33:08 · 193 阅读 · 0 评论 -
《高性能MySQL》 第三章 服务器性能剖析 读书笔记
性能优化基于响应时间性能剖析测量任务所花费的时间对结果进行统计和排序,将重要的任务排到前面时间分类执行时间等待时间理解性能剖析值得优化的查询一些只占总响应时间比重很小的査询是不值得优化的如果优化的成本大于优化的收益,则应停止优化异常情况对于某些执行时间过长影响用户体验被隐藏的细节如平均值会掩盖部分异常的情况参考工具:pt-query-digest性能测量工具New Relic、instrumentation-for-php剖析MySQL查询剖析服.原创 2020-11-27 15:28:14 · 170 阅读 · 0 评论 -
《高性能MySQL》 第一章 MySQL架构与历史 读书笔记
MySQL架构与历史逻辑架构连接处理、安全、授权验证査询解析、分析、优化、缓存以及所有的内置函数,存储过程、触发器、视图存储引擎并发控制存储引擎SHOW TABLE STATUS查看表基础信息INNODB4.1后数据和索引分开存放采用MVCC支持高并发,默认隔离级别可重复读,间隙锁防止幻读二级索引包含主键,因此主键如果越大,索引所占用的空间也越大读取优化策略读取磁盘时进行可预测性预读内存中创建hash索引以加速读操作的自适应哈希索引加速插入操作的插入缓冲区(.原创 2020-11-12 18:05:17 · 156 阅读 · 1 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第3章 存储与检索 读书笔记
存储引擎面向日志问题:数据量大时由于需要遍历整个日志文件,性能急剧下降解决方案:索引索引写性能弱于追加文件的性能方案一:HASHMAP保存KEY->文件偏移量实例:bitcask适用场景:KEY数不多,但更新频繁的场景,索引可以放在内存单个日志文件过大时,关闭该文件,开启新的日志段文件,对旧的段日志文件进行重写压缩相关实例:REDIS AOF重写段文件之间也可以进行合并,每个段维护各自的HASHMAP合并旧段可防止文件碎片化问题当客户端.原创 2020-10-22 17:38:16 · 201 阅读 · 1 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第5章 复制 读书笔记
复制领导者与追随者单领导者同步复制与异步复制同步异步半同步:一个副节点同步,其余副节点异步设置新从库全量镜象+增量处理节点宕机从节点追赶恢复主节点流程由剩余从节点或控制节点进行选主流程通常选举有最新副本的从节点做为主节点旧主节点上线后作为从节点存在问题新主库缺失旧主库部分写入,如果其收到冲突的写入(如主键冲突),常见方法是丢掉旧主库未同步的写入,但影响了写入的持久性如果丢掉的写入与其他数据库相关联,则有可能会出现数据不一致的问题脑裂.原创 2020-10-22 17:33:29 · 133 阅读 · 0 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第6章 分区 读书笔记
分区解决问题:解决可扩展性分区与复制通常分区与复制是结合在一起的(多副本)键值的分区根据键的范围分区每个分区可用SSTable以顺序方式保存键缺点:某些特定访问模式会产生访问热点解决方法:尝试用多个字段组合来创建键根据键的HASH分区保证平衡性但失去高效范围查询的能力Cassandra折中策略复合主键的第一列作为分区键,而后续键作为SSTable排序数据连接索引,虽不能在第一列做高效范围查询,但后续列可进行范围扫描负载倾斜与消除热点基于应用层,由用户控制编.原创 2020-10-22 17:31:19 · 130 阅读 · 0 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第7章 事务 读书笔记
事务事务的棘手性ACID单对象和多对象操作单对象写入对单节点上的单个对象(例如键值对)上提供原子性和隔离性原子性通过日志做崩溃恢复隔离性通过加锁实现多对象事务关系型数据库更新带有外键的表文档型数据同时更新多份文档二级索引与数据的同时更新处理错误和中止对于已经提交的事务,如果在给客户端返回结果的网络中断,如果此时重试事务,则需要去重机制如果是由网络拥塞导致的重试,则需要限制重试次数非必要问题不用重试,如违反约束不需要重试两阶段提交弱隔离级.原创 2020-10-22 17:28:45 · 110 阅读 · 0 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第9章 一致性与共识 读书笔记
一致性与共识一致性保证分布式一致性与事务隔离的区别事务隔离主要是为了避免由于同时执行事务而导致的竞争状态分布式一致性主要关于,面对延迟和故障时,如何协调副本间的状态线性一致性即原子一致性(atomic consistency),强一致性满足标准:使系统看起来只有一个副本对于多副本系统,如果第一次从A副本读取,第二次从B副本读取同样的数据,有可能第二次看到的是旧数据,不满足线性一致性解决方法:为读取添加约束,如果第一次读取读到新值,则后续读取也必须保证读到新值线性一致与可.原创 2020-10-22 17:26:33 · 273 阅读 · 0 评论 -
MPP(大规模并行处理)简介
1、 什么是MPP?MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最转载 2020-10-16 18:31:13 · 1257 阅读 · 0 评论