背景之前文章中说过发布流程(Jenkins+Gitlab+Harbor构建持续集成),但这里有个问题——不同环境中的配置文件不一样,之前的方案只是把代码发布到机器上,不能“一刀切”使用相同的配置,我们现在使用携程框架部门研发的开源配置管理中心Apollo来完成配置文件分发 特点

阅读更多»

背景最近研究了一下公司现有的发布流程,大致流程是这样:开发在开发完成代码后,提PR后,Merge代码, 不需要关注代码发布流程, 使用Jenkins工具,自动发布代码到对应环境中,然后进行测试,提高研发工作效率和减少运维人员重复工作 组件说明Jenkinsjenkins是基于Ja

阅读更多»

count(*) 实现方式不同的引擎,实现方式不同 Myisam把一个表的总行存在磁盘上,执行时直接返回这个数 Innodb,需要把数据一行行的从引擎中读出来,然后累积计数,遍历全表 不同的count用法count()为聚合函数,对于返回的结果集,一行行判断,如果count函

阅读更多»

全字段排序mysql会给每个线程分配一块内存用于排序,称为sort_buffer sort_buffer_size 是mysql为排序开辟的内存大小(sort_buffer)大小,如果要排序的数据量小于sort_buffer_size,排序在内存中完成,如果排序数据量太大,大于该

阅读更多»

前缀索引前缀字符长度索引,所占空间更小,同时会增加额外的记录扫描次数 在建立索引时需要关注的是区分度,区分度越高越好 查看对应索引的区分度方法123456select count(distinct a) as L from user;select count(*) as tota

阅读更多»

锁分类 全局锁 表级锁 行锁 全局锁全局锁就是对整个数据库实例加锁命令1flush tables with read lock 使用该命令后其他线程的执行语句都会被阻塞:数据更新语句(数据的增删改)和数据定义语句(建表和修改表结构等)和更新事务的提交语句 应用:全库逻辑备份

阅读更多»

事务事务是为了保证一组数据库操作,要么全部执行成功,要么全部执行不成功,InnoDB支持,Myisam不支持 事务的特性 原子性 一致性 隔离性 持久性 多事务同时执行引起的问题 脏读 不可重复读 幻读 事务隔离级别 读未提交(read uncommitted) 一个事务还没

阅读更多»

WAL(Write-Ahead-Logging),先写日志,再写磁盘 redo log(重做日志) 存储引擎层面 存储容量大小固定,循环写 checkpoint 当前要擦除的位置,擦除记录前需要将数据更新到数据文件中 write-pos 当前写入记录的位置 功能:保证InnoD

阅读更多»

优化器选择索引逻辑 扫描行数 使用临时表 是否排序 基数一个索引上不同值的个数,称之为“基数(cardinality)”;基数越大,索引的区分度越好 show index from x 查看索引对应的基数 采样统计, 通过设置参数innodb_stats_persistent

阅读更多»

查询操作 查找到满足条件的第一个记录,在查找下一个记录,直到到不满足记录时停止 唯一索引,找到第一个满足条件记录,停止检索 更新操作change buffer:如果数据页没有在内存中,innodb会将更新操作缓存在change buffer中,这样不需要从磁盘中读取数据页;下次

阅读更多»

ttxsgoto

天天向上goto