Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析 Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析1 存取类型1 5 范围存取类型2 6 索引存取类型2 7 转换3 AND3 9 OR3 10 UNION3 11 ...
分类:
数据库 时间:
2016-12-11 01:09:25
阅读次数:
274
MySQL5.7新增两种字段类型:Json和Generated,Generated型的产生和Json的关系密不可分,如果没有Generated类型,Json类型在强大,生产中可能也无法使用,因为Json不支持索引,但是如果要查询Json里的数据,没有索引就是全表扫描,在执行效率上肯定是不能用于生产环境的,但是有..
分类:
数据库 时间:
2016-12-07 14:38:48
阅读次数:
248
有索引的列优先,都有索引的看查询出来的数据量,少的优先in ,not in,<>,is null,is not null 等由于不会走索引,尽量不要使用。WHERE子句后面的条件顺序对大数据量表的查询会产生直接的影响,如Select * from zl_yhjbqk where dy_dj = '1 ...
分类:
数据库 时间:
2016-12-01 22:08:05
阅读次数:
171
方式1: for循环,每一次进行一次插入数据。 方式2: jdbc的preparedStatement的batch操作 一次最多不要超过50条:1.因为当你插入的时候 数据库已经锁定,然而如果你一次性插入太多会造成其他业务的等待。2.会造成内存的溢出 方式2的本质是:insert into tabl ...
分类:
数据库 时间:
2016-12-01 21:20:52
阅读次数:
246
处理上百万条的数据库如何提高处理查询速度.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t wher ...
分类:
数据库 时间:
2016-12-01 04:05:53
阅读次数:
261
整理尘封的文档,sql语句方面的几条原则再次回顾一下。更详细版本 1. 尽量使用临时表扫描替代全表扫描; 2. 抛弃in和not in语句,使用exists和not exists替代;IN和EXISTS的差别是,exists支持短路,in不支持短路,所以如果业务可以用exists最好用exists ...
分类:
数据库 时间:
2016-12-01 01:40:51
阅读次数:
162
一个SQL,通过SPM固定它的执行计划,可以通过DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE实现。也可以通地此功能在不修改原SQL的情况下对其加HINT来固定执行计划。DB VERSION:Oracle 11.2.0.4OS:CentOS 6.6例如:原SQL走索引:S ...
分类:
其他好文 时间:
2016-11-29 21:31:17
阅读次数:
145
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在 ...
分类:
数据库 时间:
2016-11-25 12:22:11
阅读次数:
204
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt101 1. like %keyword 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。 2. like key ...
分类:
数据库 时间:
2016-11-23 22:08:23
阅读次数:
190
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt345 mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询。一直大家都认为exists比in语句的效 ...
分类:
数据库 时间:
2016-11-22 12:37:11
阅读次数:
143