站长资讯网
最全最丰富的资讯网站

MySQL性能调优之查询优化

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于性能优化的相关问题,包括了查询优化等内容,下面一起来看一下,希望对大家有帮助。

MySQL性能调优之查询优化

推荐学习:mysql视频教程

在编写快速的查询之前,需要清楚一点,真正重要的是响应时间,而且要知道在整个SQL语句的执行过程中每个步骤都花费了多长时间,要知道哪些步骤是拖垮执行效率的关键步骤,想要做到这点,必须要知道查询的生命周期,然后进行优化,不同的应用场景有不同的优化方式,不要一概而论,具体情况具体分析。

一、查询慢的原因

1、网络

2、CPU

3、IO

4、上下文切换

5、系统调用

6、生成统计信息

7、锁等待时间

二、优化数据访问

1、查询性能低下的主要原因是访问的数据太多,某些查询不可避免的需要筛选大量的数据,我们可以通过减少访问数据量的方式进行优化

(1)确认应用程序是否在检索大量超过需要的数据

(2)确认mysql服务器层是否在分析大量超过需要的数据行

2、是否向数据库请求了不需要的数据

(1)查询不需要的记录(我们常常会误以为mysql会只返回需要的数据,实际上mysql却是先返回全部结果再进行计算,在日常的开发习惯中,经常是先用select语句查询大量的结果,然后获取前面的N行后关闭结果集。优化方式是在查询后面添加limit)

(2)多表关联时返回全部列(select * from actor inner join film_actor using(actor_id) inner join film using(film_id) where film.title='Academy Dinosaur';select actor.* from actor…;)

(3)总是取出全部列(在公司的企业需求中,禁止使用select *,虽然这种方式能够简化开发,但是会影响查询的性能,所以尽量不要使用)

(4)重复查询相同的数据(如果需要不断的重复执行相同的查询,且每次返回完全相同的数据,因此,基于这样的应用场景,我们可以将这部分数据缓存起来,这样的话能够提高查询效率。)

三、执行过程的优化

1、查询缓存

在解析一个查询语句之前,如果查询缓存是打开的,那么mysql会优先检查这个查询是否命中查询缓存中的数据,如果查询恰好命中了查询缓存,那么会在返回结果之前会检查用户权限,如果权限没有问题,那么mysql会跳过所有的阶段,就直接从缓存中拿到结果并返回给客户端

2、查询优化处理

mysql查询完缓存之后会经过以下几个步骤:解析SQL、预处理、优化SQL执行计划,这几个步骤出现任何的错误,都可能会终止查询。

(1)语法解析器和预处理

mysql通过关键字将SQL语句进行解析,并生成一颗解析树,mysql解析器将使用mysql语法规则验证和解析查询,例如验证使用使用了错误的关键字或者顺序是否正确等等,预处理器会进一步检查解析树是否合法,例如表名和列名是否存在,是否有歧义,还会验证权限等等
(2)查询优化器

当语法树没有问题之后,相应的要由优化器将其转成执行计划,一条查询语句可以使用非常多的执行方式,最后都可以得到对应的结果,但是不同的执行方式带来的效率是不同的,优化器的最主要目的就是要选择最有效的执行计划。

mysql使用的是基于成本的优化器,在优化的时候会尝试预测一个查询使用某种查询计划时候的成本,并选择其中成本最小的一个。

a、select count(*) from film_actor; show status like 'last_query_cost';

可以看到这条查询语句大概需要做1104个数据页才能找到对应的数据,这是经过一系列的统计信息计算来的.

(a) 每个表或者索引的页面个数

(b) 索引的基数

(c) 索引和数据行的长度

(d) 索引的分布情况

b、在很多情况下mysql会选择错误的执行计划,原因如下:

(a)统计信息不准确(InnoDB因为其mvcc的架构,并不能维护一个数据表的行数的精确统计信息)

(b) 执行计划的成本估算不等同于实际执行的成本(有时候某个执行计划虽然需要读取

赞(0)
分享到: 更多 ( 0)

相关推荐

  • 美国洛杉矶站群服务器高速稳定
  • 美国高防云服务器的特点
  • 美国硅谷大带宽服务器为什么会在全球很受欢迎?
  • 如何根据需求选择合适的新加坡VPS操作系统?
  • RAKSmart的美国硅谷服务器是否提供免费备份服务?
  •  美国硅谷裸机云大宽带服务器在哪些行业中应用最广泛?
  • 海外大带宽服务器的带宽大小是如何定义的?
  • 海外大带宽服务器的带宽大小是如何定义的?

深圳SEO优化公司塔城建站推荐拉萨网站搭建报价同乐seo网站优化哪家好长沙英文网站建设公司黔东南网站优化推广推荐南阳网站搭建多少钱贵港关键词排名临沂网站优化排名哪家好湘西百度标王南通阿里店铺运营推荐贵阳SEO按效果付费醴陵模板网站建设哪家好盐城SEO按天扣费报价金华设计网站推荐大同百姓网标王推荐合肥网站关键词优化报价拉萨网站优化按天扣费遵义网站建设价格保山企业网站建设推荐桐城营销网站多少钱南昌阿里店铺托管公司石岩网站搭建报价临猗关键词按天计费临夏网站制作设计安庆网站制作设计价格怒江百度关键词包年推广推荐晋中网站优化软件哪家好扬州seo网站推广推荐大同SEO按天扣费报价西宁建站推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化