sql优化整理(二)】的更多相关文章

对于连接查询,EXPLAIN的extra字段出现using join buffer,表示使用了连接缓存,保证JOIN语句中被驱动表上JOIN条件字段已经添加索引: LEFT JOIN 条件用于确定如何从右表搜索行,左边一定有,所以右边的关键是要建立索引:左连接索引加在右表: RIGHT JOIN条件用于确定如何从左表搜索行,右边一定有,左边的关键是建立索引:左表建立索引: 关于慢查询分析的步骤 1.开启慢查询日志,设置阈值,比如超过5秒就是慢sql,并将它抓出来 2.explain+慢sql分析…
前言: 这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点. 我的教材是人大王珊老师的<数据库系统概论>. 因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试后我也没有继续整理). 1. 模式 SCHEMA CREATE SCEMA <模式名> AUTHORIZATION <用户名>; eg: CREATE SCEMA"S-T" AUTHORIZATION WANG; Note: 用户可以在定义模式的同时创建基本表.视图…
1.where 子句中可以对字段进行 null 值判断吗?        可以,比如 select id from t where num is null 这样的 sql 也是可以的.但是最好不要给数据库留 NULL,尽可  能的使用 NOT NULL 填充数据库.不要以为 NULL 不需要空间,比如:char(100) 型,在字段建立时,空间就固定了,  不管是否插入值(NULL 也包含在内),都是占用 100 个字符的空间的,如果是 varchar 这样的变长字段,null 不占  用空间.…
sql的编写语法是这样的: SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <order_…
锁 锁的模式 锁模式 描述 共享(S) 用于不更改或不更新数据(只读操作),如SELECT语句 更新(U) 用于可更新的资源中.防止当多个会话在读取.锁定以及随后可能进行的资源更新时发生常见形式的死锁. 排它(X) 用于数据修改操作,例如INSERT.UPDATE或DELETE.确保不会同时对同一资源进行多重更新 意向 SQL Server有在资源的低层获得共享锁或排它锁的意向意向锁的类型为:意向共享(IS).意向排它(IX)以及意向排它共享(SIX) 架构 在执行依赖于表架构的操作时使用.架构…
原创文章,始发自本人个人博客站点,转载请务必注明出自http://www.jasongj.com 个人博客上本文链接http://www.jasongj.com/2015/03/15/count_distinct/ UV vs. PV 在互联网中,经常需要计算UV和PV.所谓PV即Page View,网页被打开多少次(YouTube等视频网站非常重视视频的点击率,即被播放多少次,也即PV).而UV即Unique Visitor(微信朋友圈或者微信公众号中的文章则统计有多少人看过该文章,也即UV.…
接下来比较重要,我会先贴出一个存储过程,根据这个存储过程讲解 PROCEDURE AP_CXBB_GT3_SBFGL_SBFYJSQC (OUT_RECORD OUT SYS_REFCURSOR, PI_XH PLS_INTEGER, PV_ZGSWJG VARCHAR2 --管理单位 --PI_HSND PLS_INTEGER, --汇算年度 --QR_HYDM PLS_INTEGER --行业 ) AS VI_HYXH PLS_INTEGER ; BEGIN VI_HYXH:); DELET…
今天面某家公司,然后问我SQL优化,感觉有点忘了,今天特此总结一下: 总结得是分两方面:索引优化和查询优化: 一. 索引优化: 1. 独立的列 在进行查询时,索引列不能是表达式的一部分,也不能是函数的参数,否则无法使用索引. 例如下面的查询不能使用 actor_id 列的索引: #这是错误的 SELECT actor_id FROM sakila.actor WHERE actor_id + 1 = 5; 优化方式:可以将表达式.函数操作移动到等号右侧.如下: SELECT actor_id F…
本文提要 从编码角度来优化数据层的话,我首先会去查一下项目中运行的sql语句,定位到瓶颈是否出现在这里,首先去优化sql语句,而慢sql就是其中的主要优化对象,对于慢sql,顾名思义就是花费较多执行时间的语句,它带来的影响也比较恶劣,首先是执行时间过长影响数据的返回速度,其次,慢sql的长时间执行也会消耗和占用mysql的系统资源,影响其他的sql语句执行,过多的慢sql极其影响性能,如果系统流量或者并发量较大的情况下,过多的执行慢sql很有可能造成mysql的死锁以致于mysql服务无法正常使…
此文是我最早开始sql优化至今整理的小知识点和经常遇到的问题,弄懂这些对优化大型的sql会有不少帮助 ---------------------------------使用了多余的外连接------------------------------------------------- 使用多余的外连接 外连接是一个代价非常昂贵的执行过程.如果业务需要,这种操作是必要的,但是有时 候会出现人为的在SQL 中使用不必要的外连接,这实际上是因为有的开发人员担心遗漏一 些数据而刻意使用它,这就非常有可能…