mysql 海量数据库的查询优化及分页算法方案

文章分类:数据库

转自链

接:http://www.doczj.com/doc/c548420fba1aa8114431d9a4.html/database/110/256c64abb774f5680a270b456166f79 5.htm

select * from table1 where name=…zhangsan… and tID > 10000

和执行:

select * from table1 where tID > 10000 and name=…zhangsan…

一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name=…zhangsan…的,而后再根据限制条件条件tID>10000来提出查询结果。

事实上,这样的担心是不必要的。SQL SERVER中有一个“查询分析优化器”,它可以计算出where子句中的搜索条件并确定哪个索引能缩小表扫描的搜索空间,也就是说,它能实现自动优化。

虽然查询优化器可以根据where子句自动的进行查询优化,但大家仍然有必要了解一下“查询优化器”的工作原理,如非这样,有时查询优化器就会不按照您的本意进行快速查询。

在查询分析阶段,查询优化器查看查询的每个阶段并决定限制需要扫描的数据量是否有用。如果一个阶段可以被用作一个扫描参数(SARG),那么就称之为可优化的,并且可以利用索引快速获得所需数据。

SARG的定义:用于限制搜索的一个操作,因为它通常是指一个特定的匹配,一个值得范围内的匹配或者两个以上条件的AND连接。形式如下:

列名操作符

操作符列名

列名可以出现在操作符的一边,而常数或变量出现在操作符的另一边。如:

Name=?张三?

价格>5000

5000

Name=?张三? and 价格>5000

如果一个表达式不能满足SARG的形式,那它就无法限制搜索的范围了,也就是SQL SERVER 必须对每一行都判断它是否满足Where子句中的所有条件。所以一个索引对于不满足SARG 形式的表达式来说是无用的。

介绍完SARG后,我们来总结一下使用SARG以及在实践中遇到的和某些资料上结论不同的经验:

1、Like语句是否属于SARG取决于所使用的通配符的类型

如:name like …张%? ,这就属于SARG

mysql分页的高效算法_mysql_海量数据库的查询优化及分页算法方案相关推荐

  1. 海量数据库的查询优化及分页算法方案 1

    随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀 ...

  2. SQLServer海量数据库的查询优化及分页算法方案

    随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀 ...

  3. 海量数据库的查询优化及分页算法方案

    在以下的文章中,我将以"办公自动化"系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的&qu ...

  4. SQL server 海量数据库的查询优化及分页算法(收藏)

     http://www.w17x.com/AritcleDisplay.aspx?id=661 具体如下: 如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分 ...

  5. 海量数据库的查询优化及分页算法方案(一)

    随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀 ...

  6. mysql 海量数据库的查询优化及分页算法方案_mysql 海量数据库的查询优化及分页算法方案...

    select * from table1 where name='zhangsan' and tID > 10000 和执行: select * from table1 where tID &g ...

  7. 海量数据库的查询优化及分页算法方案(3)--改善SQL语句[转]

    (从硬盘的某个角落里找到的,也不知道以前是从哪里下载的,在这里对原作者说声抱歉.) 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解 ...

  8. 海量数据库的查询优话及分页算法

    海量数据库的 查询优化及分页算法方案 随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存 ...

  9. 分页解决方案 —— GridView + QuickPager + QuickPager_SQL + DataAccessLibrary + 数据库

    这里要说的不仅仅是一个分页控件,而是一套解决方案,包括如何显示数据.显示分页导航,如何得到分页用的sql语句(等效于存储过程),如何提取数据,如何绑定控件,如何响应事件,添加.修改.删除数据后如何更新 ...

最新文章

  1. TensorFlow——加载和使用多个模型解决方案
  2. 操作系统-信号量的使用
  3. python怎么输出浮点数_【数会小课堂】Python知识第二弹
  4. Spring Boot(1) 入门、自动配置
  5. DXUT框架剖析(1)
  6. python人脸照片分类_Python系列之三——人脸检测、人脸识别
  7. 计算机软考论文分数,软考高级里哪个最好考?
  8. mock server java_1分钟搭建极简mock server
  9. 使用ImageJ软件计算信噪比(SNR)的小工具
  10. 像素值/DN值/数字量化值
  11. mysql导出到excel方法汇总
  12. Flutter高德定位定位权限管理
  13. 软件测试117道面试题直击面试官灵魂
  14. 只有真正将产业互联网看成是一种嬗变的过程,才能把握其精髓和原始奥义
  15. 【IOS】IOS工程自动打包并发布脚本实现
  16. 2016中欧绿色和智慧城市奖正式启动
  17. Modeling-Relational-Data-with-Graph-Convolutional-Networks-阅读笔记
  18. html5 index属性,深入理解CSS z-index属性
  19. RPA机器人的6大收益
  20. 现代检测技术--概论

热门文章

  1. 【数据结构-查找】1.通俗易懂讲解 —— 顺序-折半-分块查找
  2. python:dataframe保存成csv文件和读取
  3. Android空间WebView和ViedeoView的使用
  4. struts2配置default-properties
  5. Trie树进阶:Double-Array Trie原理及状态转移过程详解
  6. C语言实现字符串的加密和解密
  7. Jenkins持续集成环境之凭证管理
  8. 深究angularJS——(上传)FileUploader中文翻译
  9. python是多模型语言_Django多语言post模型
  10. 博睿数据与阿里云签订云原生核心合作伙伴计划,推动企业智能运维落地