//假设一个for循环 for($i = 0; $i < 10000; $i++) { for ($j = 0; $i < 50; $j++) { } } for($i = 0; $i < 50; $i++) { for ($j = 0; $i < 10000; $j++) ...
分类:
数据库 时间:
2018-06-11 15:46:40
阅读次数:
200
先来看查询的sql 语句: select id, t1,t2 from t_table where id in(232922924); 以上查询语句造成数据库的运行线程高,导致页面响应比较缓慢。那么需要从哪些方面来优化查询sql呢? 一般优化sql 会从以下几个方面去考虑: 1.使用组合索引; (1 ...
分类:
数据库 时间:
2018-06-11 02:09:39
阅读次数:
199
原文链接: http://www.promptness.cn/article/4 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, ...
分类:
数据库 时间:
2018-06-06 18:10:40
阅读次数:
164
OR、in和union all 查询效率到底哪个快。 网上很多的声音都是说union all 快于 or、in,因为or、in会导致全表扫描,他们给出了很多的实例。 但真的union all真的快于or、in?本文就是采用实际的实例来探讨到底是它们之间的效率。 1:创建表,插入数据、数据量为1千万【 ...
分类:
数据库 时间:
2018-06-05 15:42:00
阅读次数:
206
在一般的查询中,都要求尽量围绕创建的索引进行。针对索引,常用的有主键索引,单列索引,组合索引,索引合并等。 在评价索引时,关键看区分度。索引区分度=索引列唯一值/表记录数。 如果在区分度很低的列上建索引,那索引扫描的rows会相当大,该索引的性能表现就基本接近全表扫描了。 主键索引 是一种特殊的唯一 ...
分类:
数据库 时间:
2018-06-03 14:47:16
阅读次数:
164
如下表结构: 在执行联合查询时,如下2种写法的执行计划有明显差别。 第一种: 第二种: 两者的差别在于order by的表字段不同。 看执行计划: 第一种的执行计划: 第二种的执行计划: rows的差别忽略,因为数据在不停的新增过程中。 第一种方式有主键索引,不需要使用临时表。第二种全表扫描,使用临 ...
分类:
数据库 时间:
2018-06-02 14:00:33
阅读次数:
188
1.在什么场景下需要重写hashcode?HashMap的实现原理? 如果我们对equals()方法进行了重写,一般对hashcode进行重写,保证相同的对象返回相同的hash值 HashMap实际上是一个"链表散列"的数据结构,即数组和链表的组合 当我们向HashMap中put值的时候,先计算ke ...
分类:
编程语言 时间:
2018-05-21 19:53:32
阅读次数:
173
查询语句前加上 explain 命令可分析当前语句 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id fro ...
分类:
数据库 时间:
2018-05-18 13:59:58
阅读次数:
151
使用索引的理由: 索引是为检索而存在的。在数据检索过程中,符合条件的数据存储在哪里,我们是完全不知情的,如果使用select语句进行查询,数据库会从第一条记录开始检索,即使找到第一条符合条件的数据,数据库的搜索也并不会因此而停止,毕竟符合条件的数据可能并不止一条,数据库会进行全表扫描。 创建索引的方 ...
分类:
数据库 时间:
2018-05-10 15:36:28
阅读次数:
156
mysql之高性能索引 当db的量达到一定数量级之后,每次进行全表扫描效率就会很低,因此一个常见的方案是建立一些必要的索引作为优化手段,那么问题就来了: 那么什么是索引呢? 索引的实现原理是怎样的? 我们通常说的聚集索引,非聚集索引的区别是什么? 如何创建和使用索引呢? I. 索引介绍 MySQL官 ...
分类:
数据库 时间:
2018-05-09 12:15:28
阅读次数:
148