获得徽章 1
- #青训营笔记创作活动#
1月13日 day28
向外暴露的接口一般都需要加上一个访问限制,以防止恶意刷流量或者爆破,访问限制的做法有很多种,从控制粒度上说可以分为:全局访问限制和接口访问限制评论点赞 - #青训营笔记创作活动#
1月12日 day27
为什么分库分表
单机数据库的存储能力、连接数是有限的。我们可以通过添加从库、优化索引提升性能。
数据量朝着千万以上趋势增长,再怎么优化数据库操作性能仍下降严重。为了减少数据库的负担,提升数据库响应速度,缩短查询时间,就需要进行分库分表。展开评论点赞 - #青训营笔记创作活动#
1月10日 day25
缓存使用场景:
CPU中的缓存
降低自身CPU消耗
减少对外IO交互
提升用户个性化体验展开评论点赞 - #青训营笔记创作活动#
1月9日 day23
对称加密:加密和解密用的都是同一个秘钥
非对称加密:加密和解密用到的不是同一个秘钥,是两个不一样的秘钥,公钥和私钥。评论点赞 - #青训营笔记创作活动#
1月8日 day24
页面静态化
瞬时高并发
秒杀按钮
读多写少
秒杀按钮
缓存击穿
缓存问题
缓存穿透
库存问题展开评论点赞 - #青训营笔记创作活动#
1月3日 day22
Redis(Remote Dictionary Server)是一个开源的、键值对型的数据存储系统。使用C语言编写,遵守BSD协议,可基于内存也可持久化的日志型数据库,提供了多种语言的API,被广泛用于数据库、缓存和消息中间件。并且支持多种类型的数据结构,用于应对各种不同场景。可以存储多种不同类型值之间的映射,支持事务,持久化,LUA 脚本以及多种集群方案等。
优点:
完全基于内存操作,性能极高,读写速度快,Redis 能够支持超过 100KB/s 的读写速率
支持高并发,支持10万级别的并发读写
支持主从模式,支持读写分离与分布式
具有丰富的数据类型与丰富的特性(发布订阅模式)
支持持久化操作,不会丢失数据
缺点:
数据库容量受到物理内存的限制,不能实现海量数据的高性能读写
相比关系型数据库,不支持复杂逻辑查询,且存储结构相对简单
虽然提供持久化能力,但实际更多是一个 disk-backed 功能,与传统意义上的持久化有所区别展开评论点赞 - #青训营笔记创作活动#
1月2日 day21
索引就是用来帮助表快速检索目标数据的
简单的概述一下查询后,每个字段的含义:
①Table:当前索引属于那张表。
②Non_unique:目前索引是否属于唯一索引,0代表是的,1代表不是。
③Key_name:当前索引的名字。
④Seq_in_index:如果当前是联合索引,目前字段在联合索引中排第几个。
⑤Column_name:当前索引是位于哪个字段上建立的。
⑥Collation:字段值以什么方式存储在索引中,A表示有序存储,NULL表无序。
⑦Cardinality:当前索引的散列程度,也就是索引中存储了多少个不同的值。
⑧Sub_part:当前索引使用了字段值的多少个字符建立,NULL表示全部。
⑨Packed:表示索引在存储字段值时,以什么方式压缩,NULL表示未压缩,
⑩Null:当前作为索引字段的值中,是否存在NULL值,YES表示存在。
⑪Index_type:当前索引的结构(BTREE, FULLTEXT, HASH, RTREE)。
⑫Comment:创建索引时,是否对索引有备注信息。展开评论点赞 - #青训营笔记创作活动#
1月1日 day20
①整个数据库中,数据表的查询速度直线提升,数据量越大时效果越明显。
②通过创建唯一索引,可以确保数据表中的数据唯一性,无需额外建立唯一约束。
③在使用分组和排序时,同样可以显著减少SQL查询的分组和排序的时间。
④连表查询时,基于主外键字段上建立索引,可以带来十分明显的性能提升。
⑤索引默认是B+Tree有序结构,基于索引字段做范围查询时,效率会明显提高。
⑥从MySQL整体架构而言,减少了查询SQL的执行时间,提高了数据库整体吞吐量。展开评论点赞 - #青训营笔记创作活动#
12月30日 day19
Bytebase是一款面向开发者的数据库变更管理工具,目前在Github上已有3.6K+Star。
主要特性如下:
SQL审核:具有一站式SQL审核面板,可以直观地看到数据库所有变更记录。
SQL建议:能自动检查SQL语句规范,额外提供GitHub Action和API接入方式。
SQL编辑器:可以在线管理及查看数据库表,支持语法的自动提示。
GitOps工作流:支持集成GitHub和GitLab,使用GitOps工作流进行数据库变更。
备份恢复:支持自动备份数据库及恢复数据。展开评论点赞