MYSQL单表查询怎么优化

本篇内容介绍了“MySQL单表查询怎么优化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站制作、栾城网络推广、微信小程序定制开发、栾城网络营销、栾城企业策划、栾城品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供栾城建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

单表查询优化

(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%'查看

MYSQL单表查询怎么优化

缓存数据失效时机

在表的结构或数据发生改变时,查询缓存中的数据不再生效。当INSERT、UPDATE、 DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE语句执行时会导致缓存中的数据失效。所以查询缓存适合有大量相同查询的时候进行使用,不适合有大量数据更新的时候使用。

可以使用下面三个SQL来清理查询缓存:

1、FLUSH QUERY CACHE; // 清理查询缓存内存碎片。

2、RESET QUERY CACHE; // 从查询缓存中移出所有查询。

3、FLUSH TABLES; //关闭所有打开的表,同时该操作将会清空查询缓存中的内容。

“MYSQL单表查询怎么优化”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


网页标题:MYSQL单表查询怎么优化
网站地址:http://pwwzsj.com/article/jceido.html