今天看啥  ›  专栏  ›  程序员鱼皮

同事吐槽我的接口性能差,原来它是真凶!

程序员鱼皮  · 公众号  ·  · 2024-07-13 13:29
    

文章预览

最近我在公司优化过几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,希望对你会有所帮助。 我们使用的数据库是 Mysql8 ,使用的存储引擎是 Innodb 。这次优化除了 优化索引 之外,更多的是在优化 count(*) 。 通常情况下,分页接口一般会查询两次数据库,第一次是获取具体数据,第二次是获取总的记录行数,然后把结果整合之后,再返回。 查询具体数据的sql,比如是这样的:` select   id , name   from   user   limit  1, 20 ; 它没有性能问题。 但另外一条使用count(*)查询总记录行数的sql,例如: select   count (*)  from   user ; 却存在性能差的问题。 为什么会出现这种情况呢? 1 count(*)为什么性能差? 在Mysql中, count(*) 的作用是统计表中记录的总行数。 而 count(*) 的性能跟存储引擎有直接关系,并非所有的存储引擎, count(*) 的性能都很 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览