面试:做过sql优化吗?】的更多相关文章

近来面试找工作经常会遇见这种问题: 做过数据库优化吗?大数据量基础过吗?系统反应慢怎么查询? 这咱也没背过啊,面试还老问,现在的网站主要的压力都来自于数据库,频繁的数据库访问经常会使系统瘫痪,这样就需要进行sql优化.明天去58面试,今天来梳理一下. 1. 写明查询具体某几列,减少*的使用,表名过长时,尽量使用表的别名 *和列名一样 2,在业务密集的SQL当中尽量不采用IN操作符,用EXISTS 方案代替. in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索…
因为最近在面试,发现sql优化这个方面问的特别特别的多.之前都是零零星星,不够全面的了解一点,刚刚在网上查了一下,从 http://blog.csdn.net/zhushuai1221/article/details/51740846 博客比较全面的了解了一些具体的优化策略,在此做个笔记方面自己以后的复习,并且以上介绍的博客中有比较系统全面的对数据库优化介绍. 先看一下sql查询的逻辑执行顺序 1. FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1        //减小笛卡尔积的…
php面试专题---Mysql索引原理及SQL优化 一.总结 一句话总结: 注意:只写精品 1.为表设置索引要付出代价 是什么? 存储空间:一是增加了数据库的存储空间 修改插入变动索引时间:二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动) 2.在哪些列上面创建索引比较合适? 1.连接的列:在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度: 2.范围:在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的: 3.排序:在经常需要排序的列上创建索…
我可以和面试官多聊几句吗?只是想偷点技能过来.MySQL优化篇(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. MyISAM表锁和InnoDB锁问题会在第二篇发布:MySQL优化篇,我可以和面试官多聊几句吗?--MyISAM表锁和InnoDB锁问题(二) 你可以将这片博文,当成过度到MySQL8.0的参考资料.注意,经验是用来参考,不是拿来即用.如果你能看到并分享这篇文章,我很荣幸.如果有误导你的地方,我表示抱歉. 接着上一篇MySQL…
曾经一次去面试,被问及in与exists的区别,记得当时是这么回答的:''in后面接子查询或者(xx,xx,xx,,,),exists后面需要一个true或者false的结果",当然这么说也不算错,但别人想听的是sql优化相关,肯定是效率的问题,只是那个时候确实不知道它们在sql优化上的区别,只知道用in会进行全表查询,exists不会全表查询,然后,我就灰溜溜的回来了! 今天就来彻底搞清楚它们的区别,查询了众多网上资料如下: 转: Mysql中 in or exists not exists…
https://my.oschina.net/u/1859679?tab=newest&catalogId=597012 上一篇,我们介绍了<DB——数据的读取和存储方式>,这篇聊聊sql优化器的工作. 关系型数据库的一大优势之一,用户无需关心数据的访问方式,因为这些优化器都帮我们处理好了,但sql查询优化的时候,我不得不要对此进行关注,因为这牵扯到查询性能问题. 有经验的程序员都会对一些sql优化了如指掌,比如我们常说的最左匹配原则,非BT谓词规避等等,那么优化器是如何确定这些的?以…
当面试官问你有关sql优化的问题时,直接拿笔写给他: 8-select 9-distinct<column_list> 1-from left_table 3-<join_type> join right_table 2-on <join_condition> 4-where <where_condition> 5-with <cube | rollup> 6-group by <column_list> 7-having <h…
关系型数据库的一大优势之一,用户无需关心数据的访问方式,因为这些优化器都帮我们处理好了,但sql查询优化的时候,我不得不要对此进行关注,因为这牵扯到查询性能问题. 有经验的程序员都会对一些sql优化了如指掌,比如我们常说的最左匹配原则,非BT谓词规避等等,那么优化器是如何确定这些的?以及为何一定要最左匹配,最左匹配的原理是什么,你是否有深入了解? 这一篇我们就通过一些实例来剖析优化器做了哪些工作,以方便我们更好的优化SQL查询. 本篇你可以知道: sql的访问路径是什么 优化器如何确定最优访问路…
开门见山,问题所在 原文地址:http://www.cnblogs.com/knowledgesea/p/3686105.html sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应的索引,索引不合理 没有有效的索引视图 表数据过大没有有效的分区设计 数据库设计太2,存在大量的数据冗余 索引列上缺少相应的统计信息,或者统计信息过期 .... 那么我们如何给找出来导致性能慢…
目录 前言 SQL优化一般步骤 1.通过慢查日志等定位那些执行效率较低的SQL语句 2.explain 分析SQL的执行计划 3.show profile 分析 4.trace 5.确定问题并采用相应的措施 场景分析 案例1.最左匹配 案例2.隐式转换 案例3.大分页 案例4.in + order by 案例5.范围查询阻断,后续字段不能走索引 案例6.不等于.不包含不能用到索引的快速搜索.(可以用到ICP) 案例7.优化器选择不使用索引的情况 案例8.复杂查询 案例9.asc和desc混用 案…