获得徽章 1
#青训营笔记创作活动#
2月4日 day6
sql优化
1.少用*
2.连表查询时尽量不要关联太多表,一旦关联太多的表,就会导致执行效率变慢
3.先查小表,再用小表的结果去大表中检索数据
4.不要使用like左模糊和全模糊查询
5..like关键字以%号开头会导致索引失效,从而导致SQL触发全表查询
6.查询时尽量不要对字段做空值判断
7.不要在条件查询=前对字段做任何运算
8.尽量避免深分页的情况出现,比如limit 100000,10,会查询出100010条数据,然后丢弃掉前面的10W条数据,将最后的10条数据返回。如果查询出的结果集,存在递增且连续的字段,可以基于有序字段来进一步做筛选后再获取分页数据。
展开
评论
#青训营笔记创作活动#
1月30日 day5
Redis 直接以内存的方式存储,如果开启了持久化则通过异步的方式将数据写入磁盘,在内存中操作本身就比从磁盘快。
Redis的持久化: 在指定的时间间隔内,执行指定次数的写操作,则会自动触发一次持久化操作,将内存中的数据写入磁盘中,即在指定目录下生成一个dump.rdb文件,redis重启则会通过加载dump.rdb文件来恢复数据
AOF策略:采用操作日志记录每一次写操作,每次启动时,重新执行一次操作日志中的指令
哨兵模式:监听主机宕机,如果主机宕机,从机自动上位。
展开
评论
#青训营笔记创作活动#
1月28日 day4
JWT分为三部分Header(标题),Claims(有效载荷), Signature(签名)。
标头通常由两部分组成:令牌的类型,即 JWT,以及正在使用的签名算法
有效负标头载包含声明。声明是关于实体(通常是用户)和附加数据的陈述。
签名使用编码后的载荷和标头,然后在通过相应的加密算法(已在标头中定义)和密钥进行加密过后的字符串。
展开
评论
#青训营笔记创作活动#
1月25日 day3
将原本数据量大的数据库拆分成多个单独的数据库,将原本数据量大的表拆分成若干个数据表
为什么要分?数据库的连接数却是有限。表中数据量大查询慢
垂直分库:按业务类型对数据分离,剥离为多个数据库,像订单、支付、会员、积分相关等表放在对应的订单库、支付库、会员库、积分库。不同业务禁止跨库直连,获取对方业务数据一律通过API接口交互。
垂直分表:将表中比较独立的字段,或者不常用的字段拆分到单独的数据表中
水平分库:同一个表按一定规则拆分到不同的数据库中,每个库可以位于不同的服务器上。两个数据库内有完全相同的表。但由于同一个表被分配在不同的数据库中,数据的访问需要额外的路由工作
水平分表:在同一个数据库内,把一张大数据量的表按一定规则,切分成多个结构完全相同表,而每个表只存原表的一部分数据。例如:一张t_order订单表有900万数据,经过水平拆分出来三个表t_order_1、t_order_2、t_order_3,每张表存有数据300万。
数据存在哪个库的表?路由算法!
展开
评论
#青训营笔记创作活动#
1月24日 day2
集线器是物理层设备,将每台计算机连接在一起,它的每个端口只做简单的转发比特,将数据广播出去,让计算机设备自己判断消息是不是属于它自己的,且某一时刻只能有一台计算机发送数据。交换机是数据链路层设备实现了数据的全双工的通信,内部维护着一张MAC地址与网线端口的对应表。路由器是网络层设备,网络和网络之间的连接就是通过路由器。在路由器里维护的是路由表,在路由表中最重要的是目的网络地址(也就是IP)和下一跳地址。所以路由通过根据目的网络地址来确定下一跳路由器。最终找到目的主机所在目的网络上的路由器。
为什么有了mac地址还要ip地址?mac就像身份证,它无法定位计算机设备在哪里,如果我们只用mac地址的话,我们会发现路由器需要记住每个mac地址所在的子网是哪一个才能找到目标,和mac不同的是,ip地址是和地域相关的。对于位于同一个子网上的设备,我们给他们分配的ip地址前缀都是一样,通过ip地址的前缀就能知道这个设备在哪个子网上了(类似线性查找和多叉树查找?)。
展开
评论
#青训营笔记创作活动#
1月22日 打卡day1
转Go路线——三刷官方文档熟悉语法,三刷Redis,Nginx等中间件基础知识。进阶学习“微服务”和“DDD”。
DDD的核心思想就是避免业务逻辑的复杂性和技术实现的复杂性耦合在一起。DDD思想指导我们对业务逻辑进行拆分,明确各自边界,形成不同的领域,不同的领域对应不同的微服务,这就是单一职责
展开
评论
个人成就
文章被阅读 1,549
掘力值 187
收藏集
0
关注标签
1
加入于