一段高质量的SQL从问问题开始(笔记)
首先SQL书写的目的是为了解决问题,因此只有明白了要解决的问题,才能写出更加高效的SQL语句,才能优雅的解决问题,获得更多的快乐!
在写一个SQL语句的时候不妨像优化器一样思考,问自己以下的这些问题,相信长时间的积累的结果一定可以让自己的SQL变得高效并且优雅
1)为了获取所需要的全部数据需要那些表?
2)其中有表是分区的吗?如果有,分区是如何定义的呢?
3)每张表都有哪些列?
4)每张表中可以引用的索引有哪些?
5)每张表以及其中的列和索引的统计信息都是什么?
6)某些列上有直方图信息吗?(这个东西不知道是什么)
通过以上的问题。以及合理的摆放搜索条件的前后顺序,可以再一定程度上少走弯路,提升SQL的效率
比如用多个and的时候,把最可能为false的放在最前面,如果用or就把最可能为true的放在前面,以及尽可能的多使用and少使用or等等
一段高质量的SQL从问问题开始(笔记)的更多相关文章
- Mysql写出高质量的sql语句的几点建议
CleverCode在实际的工作也写过一些低效率的sql语句.这些语句会给数据库带来非常大的压力.最基本的表现就是sql语句执行慢,后来逐渐的去优化和尝试. 总结了一些高质量的sql语句的写法.这里C ...
- 看着水了一天的群,终于看到一段高质量的代码了分享一下localStorage
_history : { //缓存 isLocalStorage:window.localStorage?true:false, set : function(key,value){ //设置缓存 i ...
- 《高质量C++&C 编程指南》学习笔记
这本电子书是在国科大上课时候,老师在课件资源里边提供的.之所以会重视这个文件,是因为本科时候,有个老师提到过:那个学生遍的代码很整齐,看起来让人舒服,我就知道工大留不下他.因此,我就格外注意这件事,但 ...
- 100个高质量Java开发者博客
ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表.欢迎你也参与推荐优质的Java开发博客.(声明一下:我们的数学不是体育老师教的!:) ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2011-12-28 23:00 by 汤姆大叔, 139489 阅读, 119 评论, 收藏, 编辑 才华横溢的 ...
- 转:100个高质量Java开发者博客
原文来自于:http://www.importnew.com/7469.html ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表.欢 ...
- 编写高质量JavaScript代码绳之以法(The Essentials of Writing High Quality JavaScript)翻译
原文:The Essentials of Writing High Quality JavaScript 才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<Java ...
- 编写高质量代码改善程序的157个建议:第87个建议之区分WPF和WinForm的线程模型
今天有时间了,继续<编写高质量代码改善程序的157个建议>的阅读,当我阅读到建议87的时候,里面的一些代码示例和文中所说的不一致了,是不是我现在用的是NetFramework 4.0的缘故 ...
- Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护
Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护 数据加密又称password学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文.而解密则是通过解密 ...
随机推荐
- Debian的一个命令
dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包.下面是它的一些命令解释:1)安装软件命令行:dpkg -i <.deb file name> ...
- 静态库制作.a .framework
一.静态库 .a 制作 1.新建一个Cocoa Touch Static Library 2.往里面添加文件,或者自己新建 3.添加一个Headers Phase ...
- Genymotion中文手册(官方用户手册翻译)
目录 1.概述 2 2.特点 2 2.1最擅长于虚拟Android 2 2.2高可控性 2 2.3管理你的设备 2 2.4从Eclipse中开启虚拟设备 3 3.要 ...
- js的捕捉事件,冒泡事件
冒泡事件可以查询上个随笔, 捕捉事件正好和冒泡时间正反着 所以这代码我把冒泡事件注释, html和css的内容 <style type="text/css"> #box ...
- math对象和date对象
math对象的函数方法,记住Math首字母要大写 console.log(Math.abs(-5)); //取绝对值 console.log(Math.ceil(1.1)); //向上取舍 conso ...
- 学习练习 使用Servlet实现用户注册功能
package com.hanqi.www; import java.io.IOException; import javax.servlet.ServletException; import jav ...
- J2SE宏观总结
- 在AX4.0中使用C#脚本的实现
1,虽然ms收购了ax,但是在ax低版本(ver<=4.0)中,还没有办法直接使用ms现在主推的.net技术. 通常的做法是现在AX中天津.net的引用,然后才能在代码中使用.net的一些对象以 ...
- Symantec System Recovery
目的:备份系统,备份文件,裸机恢复,异机恢复等 工具:http://bbs.kafan.cn/thread-1800182-1-1.html 下载地址:http://pan.baidu.com/s/1 ...
- C# 常用小技巧
int? id 表示id是可以为null的整型 跟Nullable<int> id 是一样的 id ?? 1等于 id==null?1:id;