- 博客(33)
- 收藏
- 关注
原创 《高性能MySQL》 第五章 索引 读书笔记
索引索引基础B-TREEMYSIAMMYSIAM索引物理位置使用前缀索引INNODB索引行主键按照原数据索引适用范围:全键值、键值范围或键前缀査找限制如果不是按最左列开始查找,则无法使用索引不能跳过索引中的列,如3个键的联合索引,查询如果只按第一列和第三列进行WHERE过滤,则无法使用索引如果某列按范围查询,则右边剩余列均无法使用索引举个例子:含有3个列的复合索引A B C,对于A=‘a’ ,B>=3,C=4 则索引只能用到A B.
2020-12-11 19:23:59
272
原创 《高性能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
227
原创 《高性能MySQL》 第三章 服务器性能剖析 读书笔记
性能优化基于响应时间性能剖析测量任务所花费的时间对结果进行统计和排序,将重要的任务排到前面时间分类执行时间等待时间理解性能剖析值得优化的查询一些只占总响应时间比重很小的査询是不值得优化的如果优化的成本大于优化的收益,则应停止优化异常情况对于某些执行时间过长影响用户体验被隐藏的细节如平均值会掩盖部分异常的情况参考工具:pt-query-digest性能测量工具New Relic、instrumentation-for-php剖析MySQL查询剖析服.
2020-11-27 15:28:14
212
原创 《高性能MySQL》 第一章 MySQL架构与历史 读书笔记
MySQL架构与历史逻辑架构连接处理、安全、授权验证査询解析、分析、优化、缓存以及所有的内置函数,存储过程、触发器、视图存储引擎并发控制存储引擎SHOW TABLE STATUS查看表基础信息INNODB4.1后数据和索引分开存放采用MVCC支持高并发,默认隔离级别可重复读,间隙锁防止幻读二级索引包含主键,因此主键如果越大,索引所占用的空间也越大读取优化策略读取磁盘时进行可预测性预读内存中创建hash索引以加速读操作的自适应哈希索引加速插入操作的插入缓冲区(.
2020-11-12 18:05:17
185
1
原创 VS2015 创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库问题调试
按各大博主所说:项目属性->常规->项目默认值->全程序优化将这里的默认项“使用链接时间代码生成”改为“无全程序优化“,或者将C/C++->优化->全程序优化 改为否,再次运行便不报错。但实测在VS2015中进行上述设置工程仍旧提示该错误,此时可以考虑将运行模式调为DEBUG,问题有可能会解决问题...
2020-11-04 16:40:31
1729
转载 深入理解CMS GC
深入理解CMS GC背景 网上关于cms gc介绍和调优的文章比较多,但大多没有经过验证。因为cms目前在Java9之前还是相对用的较多(G1也需要持续去调研),所以这里把CMS的一些重要知识和调优经验总结一下 相关jvm源代码版本为/openjdk-8-src-b132-03_mar_2014/openjdk/hotspot/src/share/vm 除了OpenJDK的源代码和R大以外,什么都不要轻易相信 CMS的一些重要知识点 使用cms gc必备的三个参数
2020-10-29 11:31:05
971
原创 《设计数据密集型应用》- Designing Data-Intensive Application - 第3章 存储与检索 读书笔记
存储引擎面向日志问题:数据量大时由于需要遍历整个日志文件,性能急剧下降解决方案:索引索引写性能弱于追加文件的性能方案一:HASHMAP保存KEY->文件偏移量实例:bitcask适用场景:KEY数不多,但更新频繁的场景,索引可以放在内存单个日志文件过大时,关闭该文件,开启新的日志段文件,对旧的段日志文件进行重写压缩相关实例:REDIS AOF重写段文件之间也可以进行合并,每个段维护各自的HASHMAP合并旧段可防止文件碎片化问题当客户端.
2020-10-22 17:38:16
236
1
原创 《设计数据密集型应用》- Designing Data-Intensive Application - 第5章 复制 读书笔记
复制领导者与追随者单领导者同步复制与异步复制同步异步半同步:一个副节点同步,其余副节点异步设置新从库全量镜象+增量处理节点宕机从节点追赶恢复主节点流程由剩余从节点或控制节点进行选主流程通常选举有最新副本的从节点做为主节点旧主节点上线后作为从节点存在问题新主库缺失旧主库部分写入,如果其收到冲突的写入(如主键冲突),常见方法是丢掉旧主库未同步的写入,但影响了写入的持久性如果丢掉的写入与其他数据库相关联,则有可能会出现数据不一致的问题脑裂.
2020-10-22 17:33:29
167
原创 《设计数据密集型应用》- Designing Data-Intensive Application - 第6章 分区 读书笔记
分区解决问题:解决可扩展性分区与复制通常分区与复制是结合在一起的(多副本)键值的分区根据键的范围分区每个分区可用SSTable以顺序方式保存键缺点:某些特定访问模式会产生访问热点解决方法:尝试用多个字段组合来创建键根据键的HASH分区保证平衡性但失去高效范围查询的能力Cassandra折中策略复合主键的第一列作为分区键,而后续键作为SSTable排序数据连接索引,虽不能在第一列做高效范围查询,但后续列可进行范围扫描负载倾斜与消除热点基于应用层,由用户控制编.
2020-10-22 17:31:19
171
原创 《设计数据密集型应用》- Designing Data-Intensive Application - 第7章 事务 读书笔记
事务事务的棘手性ACID单对象和多对象操作单对象写入对单节点上的单个对象(例如键值对)上提供原子性和隔离性原子性通过日志做崩溃恢复隔离性通过加锁实现多对象事务关系型数据库更新带有外键的表文档型数据同时更新多份文档二级索引与数据的同时更新处理错误和中止对于已经提交的事务,如果在给客户端返回结果的网络中断,如果此时重试事务,则需要去重机制如果是由网络拥塞导致的重试,则需要限制重试次数非必要问题不用重试,如违反约束不需要重试两阶段提交弱隔离级.
2020-10-22 17:28:45
144
原创 《设计数据密集型应用》- Designing Data-Intensive Application - 第9章 一致性与共识 读书笔记
一致性与共识一致性保证分布式一致性与事务隔离的区别事务隔离主要是为了避免由于同时执行事务而导致的竞争状态分布式一致性主要关于,面对延迟和故障时,如何协调副本间的状态线性一致性即原子一致性(atomic consistency),强一致性满足标准:使系统看起来只有一个副本对于多副本系统,如果第一次从A副本读取,第二次从B副本读取同样的数据,有可能第二次看到的是旧数据,不满足线性一致性解决方法:为读取添加约束,如果第一次读取读到新值,则后续读取也必须保证读到新值线性一致与可.
2020-10-22 17:26:33
311
原创 《设计数据密集型应用》- Designing Data-Intensive Application - 第10章 批处理 读书笔记
批处理使用Unix工具的批处理分析简单日志以分析网站URL统计量并倒序排序为例命令链与自定义程序借助SHELL命令链或脚本语言均可用来分析日志排序 VS 内存中的聚合对于上述统计网站的例子,如果URL种类很少,则使用内存中的聚合较合适GNU Coreutils(Linux)中的sort 程序通过溢出至磁盘的方式来自动应对大于内存的数据集,并能同时使用多个CPU核进行并行排序,可对大数据集进行处理Unix哲学统一的接口使用文件描述符在管道中进行输入.
2020-10-22 17:20:52
192
原创 《设计数据密集型应用》- Designing Data-Intensive Application - 第11章 流处理 读书笔记
流处理传递事件流消息系统(ACK)直接从生产者传递给消费者常见形式UDP组播无代理的消息库StatsD,使用UDP收集网络中所有机器的的指标并对其进行监控,只有收到所有消息,才认为计数器指标是正确的HTTP或RPC请求存在问题容错能力差,即使有消息重传机制,当消费者或生产者崩溃时,仍会丢失数据消息代理(消息队列)容忍客户端连接的上线、崩溃带来异步与消息延迟问题消息代理与数据库对比数据库中的记录需要显式删除,而消息代理当消息消费完成后即自动.
2020-10-22 17:17:27
175
转载 MPP(大规模并行处理)简介
1、 什么是MPP?MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最
2020-10-16 18:31:13
1500
转载 如何监测PHP进程异常退出(进程被杀)的原因?
背景通常,在cli下运行的常驻后台PHP进程,可能异常退出,比如php执行过程中出现的致命错误,或被 kill 命令手动杀死等。如下面的php代码: 1 2 3 4 5 6 7 8 9 <?php while(1){ $content=fgets(STDIN); if(empty($content)){ sleep(1); ...
2020-06-30 11:45:37
1172
原创 crontab 启动的后台PHP进程在消费REDIS键过期通知时消息不能正常入库
问题:crontab 启动的PHP消费REDIS键过期通知时消息不能正常入库环境:PHP5.6 THINKPHP3 REDIS2.8分析: 在SSH终端启动PHP消费进程可以正常消费,而通过crontab 命令定时检测消费进程是否存活的方式启动i消费进程不能正常消费,说明问题在crontab 导致程序的运行环境出现了变化。解决步骤: 1.在运行的关键部分输出日志,并在crontab 的对应命令后加输出重定向 >> /home/aa.log。 2.发现消费端可以收到...
2020-06-29 15:28:46
186
原创 浏览器定位大耗时javascript代码技巧
如果网页中有javascript某个函数运行时间过长导致浏览器停止响应,此时若想定位是哪个函数导致,可以在console中查看,会找到violoation的提示:点击右方的链接可以定位到出问题代码
2020-05-29 12:15:19
503
原创 REDIS过期KEY通知没有立即触发的问题
在开发过程当中,遇到了在获取REDIS过期KEY所产生的回调通知中遇到这么一个问题:配置文件定期删除频率设置的20HZ,但实际接收到expire通知还是晚了十几秒,但如果向其发出get请求,expire通知可以直接到达分析:expire定期删除策略没有正常执行由于目前环境中REDIS里有4000多个带有TTL的KEY,按该文所说删KEY采用的是限定时间随机采样删除法,因此每次循环会有概率采不到将要删除的已经过期KEY解决方法:1.在后台定时执行keys * ,在KEY数不多...
2020-05-29 11:31:36
2094
1
原创 《ARM Cortex-M3与Cortex-M4权威指南》第6章笔记
CORTEXM基于AMBA总线,对于M3与M4使用AHB Lite,而APB协议用作PPB CODE存储器区域采用独立的总线,分为D-CODE与I-CODE总线分别访问数据和指令,栈访问和读取程序映像中的向量表可以同时执行。 总线接口可插入等待状态,以便高速处理器访问低速外设。 一般来说,ARM7 ARM9 ARM10只支持对齐传输,CORTEXM3 M4支持非对齐传输(个别指令除外),实际...
2020-01-19 00:12:52
395
原创 《ARM Cortex-M3与Cortex-M4权威指南》第五章笔记
CORTEXM基于THUMB-2,可同时使用16与32位指令,但其不支持ARM指令,不能前向兼容ARM7TDMI指令集。 指令集包含关系: 指令集合展示3. 原始THUMB指令大多数均会更新APSR,但THUMB-2出...
2020-01-06 23:44:36
640
原创 《ARM Cortex-M3与Cortex-M4权威指南》第四章笔记
4.2 编程模型OS内核与系统中断使用MSP(仅能在特权模式下访问),用户任务使用PSP CPU操作状态分为:调试状态(处于DEBUG断点)、THUMB状态(M系列处理器无ARM状态)。操作模式分为:处理模式(在中断ISR状态下)、线程模式(执行普通程序) 线程模式可以切换独立的SP,处理器启动后处于特权线程模式以及THUMB状态,部分架构无非特权线程模式(如M0) 4. M...
2020-01-05 21:56:56
2341
原创 打印指定文件夹中最底层的文件夹的列表的批处理程序
@echo offrem 本程序用于打印出指定文件夹中最底层的文件夹的列表rem %1为需要遍历的文件夹绝对路径 %2为输出文件的绝对路径setlocal enabledelayedexpansioncall :searchDir %1 > %2goto :EOF:searchDirsetlocalfor /d %%i in (%1\*) do ( for ...
2020-01-02 11:40:17
237
原创 网络通永久免费内网端口映射
网络通永久免费内网端口映射,内网穿透软件,可轻松访问连接内网,100%穿透内网,不需设置路由器,不需公网ip,不需固定ip,不需动态域名,用户可免费添加多个映射,适合在公司,小区宽带,出租屋,校园网,网吧,教育网,等网络结构复杂,限制严格的环境中使用。下载地址1http://www.youtusoft.com/下载地址2:http://www.dkys.org/下载地址3:http://ww...
2019-03-21 14:46:00
1333
转载 PHP表单过期处理
在开发过程中,经常会出现表单出错而返回页面的时候填写的信息全部丢失的情况,为了支持页面回跳,可以通如下两种方式实现方案一使用header头来设置缓存控制头Cache-controlheader(‘Cache-control:private,must-revalidate’);支持页面回跳方案二使用session_cache_limiter方法sessiion_cache_limiter
2016-11-21 11:00:41
329
原创 NGINX不支持SLIM访问模式问题
问题:服务器后台运行2个PHP框架,TP和SLIM,使用NGINX ENGINE运行,出现TP框架PHP请求可正常返回,SLIM框架PHP请求出现404错误TP访问URL:index.php?m=xxx&c=xxx&a=xxxSLIM访问URL:/xxx/xxx.xxx.php/abc原始conf所设置LOCATION为location ~ [^/]\.php(/|$)
2016-07-28 10:55:45
1336
原创 SKLEARN 库导入错误
python: from sklearn.metrics import mean_squared_error 错误提示: from . import _iterative ImportError: DLL load failed: 找不到指定的模块。 在优快云找到解决方案: In case you are using the binaries from http://www.l
2016-06-26 15:16:43
5290
原创 火狐下SUBMIT表单覆盖POST请求问题
问题: 火狐下连续发送2个POST请求时第一个请求丢失(第二个POST请求通过提交表单发送) 解决步骤: 1.该问题在CHROME OPERA浏览器均没有出现,而在火狐下出现,说明后端PHP并没有问题,问题定位于前端 2.查看TP后台和打分相关的LOG发现,在CHROME浏览器下,后台有收到前端的更新打分详表的POST请求,SQL也正确执行,而在火狐下,该POST请求没有出现,对应的SQL也
2016-06-26 14:36:22
1084
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人