1. 避免频繁连接和关闭数据库,这样会导致IO访问次数太频繁。

  2. 设计表时要建立适当的索引,尤其要在 where 及 order by 涉及的列上建立索引

  3. 避免全表扫描,以下情况会导致放弃索引直接进行全部扫描

  • 避免在 where 子句中使用!=或<>操作符

  • 避免在 where 子句中对字段进行 null 值判断

    select id from table where num is null

    解决方法:建表时设置默认值0,也就是将null用0填充,然后查询:
    select id from table where num=0

  • 避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描

    select id from t where num=10 or num=20

    解决方法:使用 union

    select id from t where num=10 union all select id from t where num=20

  • 避免使用 like

    select id from t where name like ‘%abc%’

    解决方法:使用全文检索

  • 避免使用 in 和 not in

    select id from t where num in(1,2,3)

    解决方法1:连续值使用 between
    解决方法2:用 exists 替换 in
    select num from a where exists(select 1 from b where num=a.num)

  • 避免使用参数

    select id from t where num=@num

    解决方法:强制查询使用索引

    select id from t with(index(index_name)) where num=@num

  • 避免表达式操作

    select id from t where num/2=100

    解决方法:select id from t where num=100*2

  • 避免函数操作

    select id from t where substring(name,1,3)=’abc’ 查询以abc开头的id

    解决方法:全文索引

数据库涉及大量数据查询时的注意事项相关推荐

  1. 查询两张表 然后把数据并在一起_工作表数据查询时,类似筛选功能LIKE和NOT LIKE的应用...

    大家好,我们继续讲解VBA数据库解决方案,今日讲解第53讲内容:工作表查询时,类似于筛选功能的LIKE和NOT LIKE 的应用.大家在工作的时候,利用EXCEL操作,筛选是必不可少的工具之一.例如我 ...

  2. Java向数据库中插入数据出错时怎么避免插入错误数据

    Java向数据库中插入数据出错时怎么避免插入错误数据 对于初学者,向数据库写数据时,当程序输错,会有错误的数据写入了数据库,这是可以用捕获异常回滚的方法避免这种情况的发生 代码如下: /** 完成增删 ...

  3. mysql数据库备份注意,Tips: MySQL数据库使用mysqldump备份恢复时的注意事项

    Tips: MySQL数据库使用mysqldump备份恢复时的注意事项背景mysqldump采坑点1. -E, -R, --triggers2. drop table3. --set-gtid-pur ...

  4. 数据库作业4——数据查询

    3.4 数据查询 3.4.1 单表查询 1 选择表中的若干列 (3)查询经过计算的值 2 选择表中的若干元组 (1)消除取值重复的行 (2)查询满足条件的元组 3 ORDER BY 子句 4. 聚集函 ...

  5. 按学号和姓名进行查询c语言,数据库实验4 数据查询(答案)

    数据库技术与应用实验 实验4 数据查询 实验4 数据查询 学号:18103317 专业:电子信息工程 一.实验内容和步骤 1.在studentsdb数据库中,使用下列SQL语句将输出什么?并说明语句中 ...

  6. 【Mysql】大量数据查询时的优化相关知识

    今天在查询大量数据时,遇到了查询速度较慢的问题,特地搜集整理了相关的问题解决办法. 一.对于sql的优化 1 使用explain判断sql语句是否使用了索引 1. explain能够干什么 读取表的顺 ...

  7. 数据库实验报告 数据查询

    桂 林 理 工 大 学 实  验  报  告 班级软件2班学号3162052051734姓名梁振宇同组实验者 实验名称数据查询日期 2018年 06 月05 日 一.实验目的: 1.      观察查 ...

  8. 数据库——实验二 数据查询

    1.实验目的 理解SQL 程序设计基本规范,熟练运用SQL 语言实现数据查询,包括单表查询.分组统计查询和连接查询.嵌套查询合和集合查询. 2.实验内容和要求 针对tpch 数据库或自建数据库test ...

  9. Android sqlite数据库update之后数据查询数据获取不实时。。。

    最近写项目的时候用android自带的数据库SqliteDatabase,使用过程中发生了这样一件事情,我在Activity B中读取数据库表User中的数据,显示在UI上,然后跳转到Activity ...

最新文章

  1. 【微软出品】AI-神经网络基本原理简明教程
  2. WinForm之创建word并操作文档
  3. c语言两个数组按位合并,合并两个线性表(数组)并按照非递减排序输出,有点问题过来看看...
  4. C#:关于双引号的输出
  5. SAP Cloud for Customer 如何直接消费S/4HANA API
  6. qtabwidget设置tab高度_VC|富文本编辑框CRichEditCtrl的字体与段落设置
  7. 如何在Hibernate中维护表的历史记录
  8. 十年WEB技术发展历程
  9. PS亮度蒙版扩展插件:Lumenzia for Mac 支持ps2021
  10. iOS用户体验之-导航之道
  11. java metapojo_hibernate错误[org.hibernate.tuple.entity.PojoEntityTuplizer],这是什么错误,怎么解决?...
  12. 课程、问题-利用mincemeat编写简单的MapReduce程序-by小雨
  13. Python之网络编程(一)
  14. tcpdump和wireshark抓包方法介绍
  15. List<Map>转Map<String,List>
  16. C语言博客作业--一二维数组
  17. Java选择结构之switch
  18. RPG Maker MV 遇敌对战
  19. SAP订单状态最详细的解释
  20. Selenium原理探秘

热门文章

  1. 【环信IM集成指南】iOS端常见问题整理(1)
  2. PostgreSQL , PostGIS , 球坐标 , 平面坐标 , 球面距离 , 平面距离
  3. 一款非常萌的桌面工具 --- Bongo Cat Mver 附使用教程
  4. rsa1024 公钥c语言程序,两种方式生成RSA 公钥私钥
  5. python time.time()单位是秒不是毫秒
  6. Amazon EKS基于GitLab的CICD实践二 基础架构和应用架构创建篇
  7. 移动端(iOS,android)上那些炒股软件的K线图,分时图,都是怎么实现的?
  8. 有道云笔记Android app离线缓存,有道云笔记文件保存在哪里在哪个路径下
  9. 面试入职工作感悟:在阿里的那些风花雪月的日子
  10. 如何搭建实验室智能化管理,易云维有整体解决方案