全表扫描是数据库搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止。通常在数据库中,对无索引的表进行查询一般称为全表扫描;然而有时候我们即便添加了索引,但当我们的SQL语句写的不合理的时候也会造成全表扫描。以下是经常会造成全表扫描的SQL语句及应对措施: 1. 使用null做为判断条件 如 ...
分类:
数据库 时间:
2018-10-27 00:22:47
阅读次数:
155
数据库面试知识点汇总 一、基本概念 1.主键、外键、超键、候选键 超键 :在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键 :是最小超键,即没有冗余元素的超键。 主键 :数据库表中对储存数据对象予以唯一 ...
分类:
数据库 时间:
2018-10-26 00:49:05
阅读次数:
278
无索引的表就是一个无序的行集。比如下面的人员表中有一些数据: 这个表上没有索引,因此如果我们查找年龄等于17的人员时,必须查看表中的每一行,看它是否与所需的值匹配。这是一个全表扫描,很慢,如果表中只有少数几个记录与搜索条件相匹配,则其效率是相当低的。 如果我们经常要查询某个年龄的人员,必须查看表中的 ...
分类:
其他好文 时间:
2018-10-20 00:51:03
阅读次数:
150
在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE '%search_string%'是一件非常头痛的事情。这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行计划走索引扫描或全表扫描的问题。最近在优化SQL语句的时候,遇到了一个很有意思的问题。某些使用LIKE ... ...
分类:
数据库 时间:
2018-10-17 14:59:52
阅读次数:
335
MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来 ...
分类:
数据库 时间:
2018-10-17 12:10:27
阅读次数:
141
一:对查询就行优化 避免全表查询 1.首先考虑在where及order by 列上建立索引 2.where子句 LIKE '%abc%' 前置% 引擎放弃使用索引而进行全表扫描 3.where子句 操作符>,<, != 引擎放弃使用索引而进行全表扫描 4.where子句 空值判断 is null 引 ...
分类:
数据库 时间:
2018-10-16 17:33:44
阅读次数:
195
MySQL常用存储引擎之CSVCSV存储引擎可以将CSV文件作为mysql表来处理,存储格式就是普通的CSV文件。如果把数据存储在myisam和Innodb中,存储数据的文件是不能直接查看的,因为这两种存储引擎都是以二进制文件存储的。而CSV是以文本方式存储的,CSV是不支持索引的,查找的时候要进行全表扫描。文件系统存储特点:数据以文本方式存储在文件中(Innodb则是二进制).CSV文件存储表内
分类:
数据库 时间:
2018-10-10 19:10:14
阅读次数:
214
数据库索引 1.什么是索引 在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别(想想小时候查字典),它是用于提高数据库表数据访问速度的数据库对象。A)索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。B)对于非聚集索引,有些查询甚至可以不访问数据页。C)聚集 ...
分类:
其他好文 时间:
2018-10-09 11:01:00
阅读次数:
194
查询语句的优化是SQL效率优化的一个方式,可以通过优化sql语句来尽量使用已有的索引,避免全表扫描,从而提高查询效率; 1、在表中建立索引,优先考虑where、group by使用到的字段。 2、尽量避免使用select *,返回无用的字段会降低查询效率。如下: SELECT * FROM t 优化 ...
分类:
数据库 时间:
2018-10-05 18:47:14
阅读次数:
148