获得徽章 1
- #青训营笔记创作活动#
day26 2/5
今天学习Jedis 在实现上是直接连接 Redis-Server,在多个线程间共享一个 Jedis 实例时是线程不安全的,如果想要在多线程场景下使用 Jedis,需要使用连接池,每个线程都使用自己的 Jedis 实例,当连接数量增多时,会消耗较多的物理资源。展开评论点赞 - #青训营笔记创作活动#
day25 2/4
今天学习一些变更频率比较高的数据,采用集中式缓存,这样可以确保数据变更之后所有节点都可以实时感知到,确保数据一致;
对于一些极少变更的数据(比如一些系统配置项)或者是一些对短期一致性要求不高的数据(比如用户昵称、签名等)则采用本地缓存,大大减少对远端集中式缓存的网络IO次数。展开评论点赞 - #青训营笔记创作活动#
day24 2/3
今天学习通常情况下,如果用户秒杀成功了,下单之后,在15分钟之内还未完成支付的话,该订单会被自动取消,回退库存。那么,在15分钟内未完成支付,订单被自动取消的功能,要如何实现呢?我们首先想到的可能是job,因为它比较简单。但job有个问题,需要每隔一段时间处理一次,实时性不太好。还有更好的方案?答:使用延迟队列。我们都知道rocketmq,自带了延迟队列的功能。
展开评论点赞 - #青训营笔记创作活动#
day23 2/2
今天学习为什么用公钥加密,却不能用公钥解密?
因为大数取模运算是不可逆的,因此他人无法暴力解密。但是结合欧拉定理,我们可以选取出合适的p(公钥), q(私钥), N(用于取模的大数),让原本不可逆的运算在特定情况下,变得有那么点“可逆”的味道。数学原理决定了我们用公钥加密的数据,只有私钥能解密。反过来,用私钥加密的数据,也只有公钥能解密展开评论点赞 - #青训营笔记创作活动#
day22 2/1
今天学习Redis(Remote Dictionary Server)是一个开源的、键值对型的数据存储系统。使用C语言编写,遵守BSD协议,可基于内存也可持久化的日志型数据库,提供了多种语言的API,被广泛用于数据库、缓存和消息中间件。并且支持多种类型的数据结构,用于应对各种不同场景。可以存储多种不同类型值之间的映射,支持事务,持久化,LUA 脚本以及多种集群方案等。展开评论点赞 - day21 1/31
#青训营笔记创作活动#
今天学习这条命令查询一个表中拥有的索引,如下:
CREATE TABLE `zz_user` (
`user_id` int(8) NOT NULL AUTO_INCREMENT,
`user_name` varchar(255) NULL DEFAULT "",
`user_sex` varchar(255) NULL DEFAULT "",
`user_phone` varchar(255) NULL DEFAULT "",
PRIMARY KEY (`user_id`) USING BTREE
)
ENGINE = InnoDB
CHARACTER SET = utf8
COLLATE = utf8_general_ci
ROW_FORMAT = Compact;展开评论点赞 - #青训营笔记创作活动#
day20 1/30
今天学习整个数据库中,数据表的查询速度直线提升,数据量越大时效果越明显。
②通过创建唯一索引,可以确保数据表中的数据唯一性,无需额外建立唯一约束。
③在使用分组和排序时,同样可以显著减少SQL查询的分组和排序的时间。
④连表查询时,基于主外键字段上建立索引,可以带来十分明显的性能提升。
⑤索引默认是B+Tree有序结构,基于索引字段做范围查询时,效率会明显提高。
⑥从MySQL整体架构而言,减少了查询SQL的执行时间,提高了数据库整体吞吐量。展开评论点赞 - #青训营笔记创作活动#
day19 1/29
今天学习Bytebase是一款面向开发者的数据库变更管理工具,目前在Github上已有3.6K+Star。
它的主要特性如下:
SQL审核:具有一站式SQL审核面板,可以直观地看到数据库所有变更记录。
SQL建议:能自动检查SQL语句规范,额外提供GitHub Action和API接入方式。
SQL编辑器:可以在线管理及查看数据库表,支持语法的自动提示。
GitOps工作流:支持集成GitHub和GitLab,使用GitOps工作流进行数据库变更。
备份恢复:支持自动备份数据库及恢复数据。展开评论点赞 - #青训营笔记创作活动#
day18 1/28
今天学习system:这种类型要求数据库表中只有一条数据,是const类型的一个特例,一般情况下是不会出现的。
const:通过一次索引就能找到数据,一般用于主键或唯一索引作为条件,这类扫描效率极高,,速度非常快。
eq_ref:常用于主键或唯一索引扫描,一般指使用主键的关联查询
ref : 常用于非主键和唯一索引扫描。
ref_or_null:这种连接类型类似于ref,区别在于MySQL会额外搜索包含NULL值的行
index_merge:使用了索引合并优化方法,查询使用了两个以上的索引。
unique_subquery:类似于eq_ref,条件用了in子查询
index_subquery:区别于unique_subquery,用于非唯一索引,可以返回重复值。
range:常用于范围查询,比如:between ... and 或 In 等操作展开评论点赞 - #青训营笔记创作活动#
day17 1/27
今天学习慢SQL优化思路。
慢查询日志记录慢SQL
explain分析SQL的执行计划
profile 分析执行耗时
Optimizer Trace分析详情
确定问题并采用相应的措施展开评论点赞