您好,登录后才能下订单哦!
本篇内容介绍了“MYSQL单表查询怎么优化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
(1)很多人可能并不知道MYSQL有一个神奇的关键字 EXPLAIN 关键字,它可以让你看到MYSQL是如何去处理你的SQL语句的,这可以帮我们判断得出影响你数据库性能的是查询语句还是表结构的原因。
(2)我们在进行数据库查询时,应该明确你需要查询哪一些字段,而不是随意使用select *.
(3)可以使用连接(JOIN)来代替子查询。
(4)使用limit , count 或者条件 where子句时,需要限制的条件都要加上,确保你要查什么数据最后取到的都是你需要查找的数据,尽量不要查到无用数据,做到不滥用。比如说我要查找姓名对应的账号,这样的话就可以用上 limit 1,这样mysql在找到一条数据后就停止搜索,而不是全文搜索完再停止。
开启查询缓存:
这是提高查询有效的方法之一。当查询被执行了的时候,对应的查询结果会被放到一个缓存中,这样,以后进行的相同的查询就不用操作表,而是直接访问缓存取出查询结果就可以了。
查询缓存工作流程:
(1)服务器接收SQL,以SQL+DB+Query_cache_query_flags作为hash查找键提交到缓存中进行查询。
(2)如果在缓存中找到了相关的处理结果就将处理结果返回给客户端。
(3)如果没有找到缓存则执行SQL解析、预处理以及SQL优化等一些列的操作;
(4)执行完SQL之后,将结果集保存到缓存并将处理结果返回给客户端。
那么,我们如何判断什么样的情况下才需要开启缓存呢?开启对系统性能有明显的提升那才有意义。方法如下:
1)通过缓存命中率判断, 缓存命中率 = 缓存命中次数/ 查询次数 。
2)通过缓存写入率,写入率 = 缓存写入次数 / 查询次数。
3)通过 命中-写入率 判断, 比率 = 命中次数 / 写入次数, MySQL中称之为比较能反映性能提升的指数,一般来说达到3:1则算是查询缓存有效,而最好能够达到10:1
与缓存相关的主要参数如下表所示。可以使用命令SHOW VARIABLES LIKE '%query_cache%'查看
缓存数据失效时机
在表的结构或数据发生改变时,查询缓存中的数据不再生效。当INSERT、UPDATE、 DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE语句执行时会导致缓存中的数据失效。所以查询缓存适合有大量相同查询的时候进行使用,不适合有大量数据更新的时候使用。
可以使用下面三个SQL来清理查询缓存:
1、FLUSH QUERY CACHE; // 清理查询缓存内存碎片。
2、RESET QUERY CACHE; // 从查询缓存中移出所有查询。
3、FLUSH TABLES; //关闭所有打开的表,同时该操作将会清空查询缓存中的内容。
“MYSQL单表查询怎么优化”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。