
获得徽章 2
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
#青训营笔记创作活动#
2月24日 打卡day20
今天学习了sql优化
把SQL的写法进行优化,对于无法应用索引,或导致出现大数据量检索的语句,改为精准匹配的语句。
对于合适的字段上建立索引,确保经常作为查询条件的字段,可以命中索引去检索数据。
总归说来说去,也就是要让SQL走索引执行,但要记住:并非走了索引就代表你的执行速度就快,因为如果扫描的索引数据过多,依旧可能会导致SQL执行比较耗时,所以也要参考type、rows、filtered三个字段的值,来看看一条语句执行时会扫描的数据量,判断SQL执行时是否扫描了额外的行记录,综合分析后需要进一步优化到更细粒度的检索。
2月24日 打卡day20
今天学习了sql优化
把SQL的写法进行优化,对于无法应用索引,或导致出现大数据量检索的语句,改为精准匹配的语句。
对于合适的字段上建立索引,确保经常作为查询条件的字段,可以命中索引去检索数据。
总归说来说去,也就是要让SQL走索引执行,但要记住:并非走了索引就代表你的执行速度就快,因为如果扫描的索引数据过多,依旧可能会导致SQL执行比较耗时,所以也要参考type、rows、filtered三个字段的值,来看看一条语句执行时会扫描的数据量,判断SQL执行时是否扫描了额外的行记录,综合分析后需要进一步优化到更细粒度的检索。
展开
评论
点赞
#青训营笔记创作活动#
2月23日 打卡day19
今天学习了高并发场景下缓存存在的问题,以及缓存db数据一致性问题
缓存击穿:数据不在缓存,但在db
缓存穿透:数据既不在缓存,也不在db
缓存雪崩:由于大量key过期或者redis挂掉了,大量请求涌入db,导致db压力过大,甚至宕机。
缓存db数据一致性问题:并发读写,必然存在一致性问题:
缓存中有数据,那么,缓存的数据值需要和数据库中的值相同;
缓存中本身没有数据,那么,数据库中的值必须是最新值。
目前比较好的做法是:
1.旁路缓存 (Facebook的memcached也是这么做的)
2.订阅MySQL的binlog+异步更新
收起
2月23日 打卡day19
今天学习了高并发场景下缓存存在的问题,以及缓存db数据一致性问题
缓存击穿:数据不在缓存,但在db
缓存穿透:数据既不在缓存,也不在db
缓存雪崩:由于大量key过期或者redis挂掉了,大量请求涌入db,导致db压力过大,甚至宕机。
缓存db数据一致性问题:并发读写,必然存在一致性问题:
缓存中有数据,那么,缓存的数据值需要和数据库中的值相同;
缓存中本身没有数据,那么,数据库中的值必须是最新值。
目前比较好的做法是:
1.旁路缓存 (Facebook的memcached也是这么做的)
2.订阅MySQL的binlog+异步更新
收起
展开
评论
点赞