获得徽章 1
#青训营笔记创作活动#
2月23日打卡
当服务需要进一步扩展时,就会随之产生出一些问题
多服务并发时,如果还是只给当前线程加锁,多个用户一起尝试获取锁时,可能会有多个用户同时获取到锁,导致出现问题。
2月23日打卡
当服务需要进一步扩展时,就会随之产生出一些问题
多服务并发时,如果还是只给当前线程加锁,多个用户一起尝试获取锁时,可能会有多个用户同时获取到锁,导致出现问题。
评论
点赞
#青训营笔记创作活动#
2月22日打卡
今日学习
可以从表容量/磁盘空间/实例容量三方面评估数据体量三种解决方案,包括数据表分区,分库分表,冷热数据归档
2月22日打卡
今日学习
可以从表容量/磁盘空间/实例容量三方面评估数据体量三种解决方案,包括数据表分区,分库分表,冷热数据归档
评论
点赞
#青训营笔记创作活动#
2月20日打卡
因为 Filebeat 是基于监控日志文件有没有新增来同步数据的,所以需要配置日志文件的目录
2月20日打卡
因为 Filebeat 是基于监控日志文件有没有新增来同步数据的,所以需要配置日志文件的目录
评论
点赞
#青训营笔记创作活动#
2月19打卡
数据表分区
1.数据量较大 2.查询场景只在某个区 3.没有联合查询的场景
数据表分表
数据量较大,无法区分明显冷热区 且数据可以完整按照区间划分
冷热归档分库
数据量较大;数据冷热分区明显;冷数据使用频率极低
2月19打卡
数据表分区
1.数据量较大 2.查询场景只在某个区 3.没有联合查询的场景
数据表分表
数据量较大,无法区分明显冷热区 且数据可以完整按照区间划分
冷热归档分库
数据量较大;数据冷热分区明显;冷数据使用频率极低
展开
评论
点赞
#青训营笔记创作活动#
2月17日打卡
死锁是指两个或两个以上 的线程因为资源竞争造成相互等待的现象。
在INNODB中,如果一条SQL语句能命中索引执行那就会加行锁,如果无法命中就加表锁。
锁超时机制和外力介入打破僵局
waitforgraph当存在等待循环,第三方强制介入
解决思路是尽量缩短一个事务持有锁的时间,减小锁的粒度以及数量
2月17日打卡
死锁是指两个或两个以上 的线程因为资源竞争造成相互等待的现象。
在INNODB中,如果一条SQL语句能命中索引执行那就会加行锁,如果无法命中就加表锁。
锁超时机制和外力介入打破僵局
waitforgraph当存在等待循环,第三方强制介入
解决思路是尽量缩短一个事务持有锁的时间,减小锁的粒度以及数量
展开
评论
点赞
#青训营笔记创作活动#
2月16日打卡
group__concat()组内合并该函数返回带有来自一个组的连接的非NULL值的字符串结果 。
convert()转换格式
(1)不要使用*
(2)不要关联太多表
(3)多表查询先查小表再检索大表.
(4)先执行in中的子表,此时应该要确保子表条件位于所有条件的最后面
(5)不要队字段做空查询
(6)where中的条件不要在等号前运算否则无效
(7) or可以用union all替换
(8)使用分批查询
2月16日打卡
group__concat()组内合并该函数返回带有来自一个组的连接的非NULL值的字符串结果 。
convert()转换格式
(1)不要使用*
(2)不要关联太多表
(3)多表查询先查小表再检索大表.
(4)先执行in中的子表,此时应该要确保子表条件位于所有条件的最后面
(5)不要队字段做空查询
(6)where中的条件不要在等号前运算否则无效
(7) or可以用union all替换
(8)使用分批查询
展开
评论
点赞
#青训营笔记创作活动#
2月15日打卡
(1) 下载并运行MYSQL8 docker镜像
(2) 下载并运行bytebase docker镜像
(3) 设置账号密码。
(4)设置成员新增成员。
(5)在环境中设置数据库变更是否需要人工审核。
(6)配置好环境就可在实例中配置数据库实例。
(7)输入连接信息选择环境就能配置成功。
(8)创建项目进行sql编辑。
2月15日打卡
(1) 下载并运行MYSQL8 docker镜像
(2) 下载并运行bytebase docker镜像
(3) 设置账号密码。
(4)设置成员新增成员。
(5)在环境中设置数据库变更是否需要人工审核。
(6)配置好环境就可在实例中配置数据库实例。
(7)输入连接信息选择环境就能配置成功。
(8)创建项目进行sql编辑。
展开
评论
点赞
#青训营笔记创作活动#
2月14日打卡
1.DDL语句适合已经确定了索引项。
2.建错了只能使用drop删除。
3.使用FORCE INDEX 可以为一条查询语句强制指定索引查询。
4.创建一个索引会基于原有的表数据在磁盘中创建新的本地索引文件,并将原有表数据复制过来,同时要排序和映射。
2月14日打卡
1.DDL语句适合已经确定了索引项。
2.建错了只能使用drop删除。
3.使用FORCE INDEX 可以为一条查询语句强制指定索引查询。
4.创建一个索引会基于原有的表数据在磁盘中创建新的本地索引文件,并将原有表数据复制过来,同时要排序和映射。
展开
评论
点赞
#青训营笔记创作活动#
2月13日打卡
(10)set GLOBAL max-connections控制最大线程数
(11)当客户端连接断开后,数据库连接会先放入一个缓存连接池中,一般大小为32
(12)系统服务层包括请求解析,语义分析,查询优化,缓存及内置函数,跨引擎也在这层实现。
(13)dml,ddl,dql,dcl,tcl
(14)通过insert,update,delete三种事件触发,同时通过after,before声明触发时机
(15)优化器实质是通过线程根据计划调用存储引擎的apl执行sql
(16)经常执行的语句保存在cache中,如果缓存中有则在缓冲区操作完毕后,利用checkpoint机制将内存中更新的数据刷新到磁盘上
2月13日打卡
(10)set GLOBAL max-connections控制最大线程数
(11)当客户端连接断开后,数据库连接会先放入一个缓存连接池中,一般大小为32
(12)系统服务层包括请求解析,语义分析,查询优化,缓存及内置函数,跨引擎也在这层实现。
(13)dml,ddl,dql,dcl,tcl
(14)通过insert,update,delete三种事件触发,同时通过after,before声明触发时机
(15)优化器实质是通过线程根据计划调用存储引擎的apl执行sql
(16)经常执行的语句保存在cache中,如果缓存中有则在缓冲区操作完毕后,利用checkpoint机制将内存中更新的数据刷新到磁盘上
展开
评论
点赞
#青训营笔记创作活动#
2月12日打卡
(1)连接层负责处理所有客户端接入包括缓存管理,身份验证授权
(2)服务层包含sql接口,解析器,优化器 以及缓存缓冲
(3)存储引擎包括innodb,myisam等
(4)文件系统:包括日志数据索引文件
(5)支持tcp和ip的都能与mysql建立连接
(6)-h表示mysqlIP地址,tcp建立后mysql与客户端建立session会话
(7)先与客户端进行半双工
(8)show processlist 查询所有线程,利用线程id值通过kill强杀线程
2月12日打卡
(1)连接层负责处理所有客户端接入包括缓存管理,身份验证授权
(2)服务层包含sql接口,解析器,优化器 以及缓存缓冲
(3)存储引擎包括innodb,myisam等
(4)文件系统:包括日志数据索引文件
(5)支持tcp和ip的都能与mysql建立连接
(6)-h表示mysqlIP地址,tcp建立后mysql与客户端建立session会话
(7)先与客户端进行半双工
(8)show processlist 查询所有线程,利用线程id值通过kill强杀线程
展开
评论
点赞
#青训营笔记创作活动#
2月11日打卡
(1)除格式信息,非聚和聚簇(主非主)都只存索引数据。
(2)聚簇索引所有字段信息保存在叶子节点。
(3)非聚簇只存主键和索引,需要回表相当于存了指针
(4)B+树最好三层,4到32最大行长小于一半 ,64小于16,否则用外部叶存储。
(5)页(约等于节点)是innodb的最小磁盘单位。存储页格式和行格式即用户数据
(6)顺序插入大约15/16,随机为1/2到15/16
(7)dynamic将较长列值存储到溢出页上但要保留20个字节指向溢出页。只要过长就页外存储直到符合页的要求,小于40的text,blob直存储。
(8)页和叶子节点的存储数据量相同为15000左右
(9)第三层n个节点的平方,最少存放2*n方
(10)其余的用15000除以行数据大小算出每个节点 可存放的条数再乘以总节点数即n方
2月11日打卡
(1)除格式信息,非聚和聚簇(主非主)都只存索引数据。
(2)聚簇索引所有字段信息保存在叶子节点。
(3)非聚簇只存主键和索引,需要回表相当于存了指针
(4)B+树最好三层,4到32最大行长小于一半 ,64小于16,否则用外部叶存储。
(5)页(约等于节点)是innodb的最小磁盘单位。存储页格式和行格式即用户数据
(6)顺序插入大约15/16,随机为1/2到15/16
(7)dynamic将较长列值存储到溢出页上但要保留20个字节指向溢出页。只要过长就页外存储直到符合页的要求,小于40的text,blob直存储。
(8)页和叶子节点的存储数据量相同为15000左右
(9)第三层n个节点的平方,最少存放2*n方
(10)其余的用15000除以行数据大小算出每个节点 可存放的条数再乘以总节点数即n方
展开
评论
点赞
#青训营笔记创作活动#
2月10 打卡day 1
今日学习
1月12日 打卡day1
计数器限流存在边界问题,
(1)可以通过去锁原子计数方式实现限流。
(2)滑动窗口,但是需要自己确定精度
(3)漏桶算法,仅限制漏出速率,从而不会出现突发流量
(4)令牌桶,按公式计算限制平均流入速率。
(5)redis+lua 以集群为维度,通过redis计数,lua执行原子性,进行分布式限流
(6)tomact,nginx对容器限流。
2月10 打卡day 1
今日学习
1月12日 打卡day1
计数器限流存在边界问题,
(1)可以通过去锁原子计数方式实现限流。
(2)滑动窗口,但是需要自己确定精度
(3)漏桶算法,仅限制漏出速率,从而不会出现突发流量
(4)令牌桶,按公式计算限制平均流入速率。
(5)redis+lua 以集群为维度,通过redis计数,lua执行原子性,进行分布式限流
(6)tomact,nginx对容器限流。
展开
评论
1