广告
返回顶部
首页 > 资讯 > 数据库 >SQL语句及数据库优化
  • 184
分享到

SQL语句及数据库优化

2024-04-02 19:04:59 184人浏览 八月长安
摘要

 1,统一sql语句的写法对于以下两句SQL语句,程序员认为是相同的,数据库查询优化器认为是不同的。 所以封装成复用方法,用标准模板来控制。select*from d

 1,统一sql语句的写法

对于以下两句SQL语句,程序员认为是相同的,数据库查询优化器认为是不同的。 所以封装成复用方法,用标准模板来控制。

select*from dual 

select*From dual

其实就是大小写不同,查询分析器就认为是两句不同的SQL语句,必须进行两次解析。生成2个执行计划

2,不要把SQL语句写得太复杂

我经常看到,从数据库中捕捉到的一条SQL语句打印出来有2张A4纸这么长。一般来说这么复杂的语句通常都是有问题的。我拿着这2页长的SQL语句去请教原作者,结果他说时间太长,他一时也看不懂了。可想而知,连原作者都有可能看糊涂的SQL语句,数据库也一样会看糊涂。

 

比如 Select语句的结果作为子集

简化SQL语句的重要方法就是采用临时表暂存中间结果,但是,临时表的好处远远不止这些,将临时结果暂存在临时表,后面的查询就在tempdb中了,这可以避免程序中多次扫描主表 也大大减少了程序执行中“共享”阻塞“更新锁”,减少了阻塞,提高了并发性能。

 

3,必须采用绑定变量 

select*from orderheader where changetime >‘2010-10-20 00:00:01‘ 
select*from orderheader where changetime >‘2010-09-22 00:00:01‘


以上两句语句,查询优化器认为是不同的SQL语句,需要解析两次。如果采用绑定变量

select*from orderheader where changetime >@chgtime

 

4,使用like进行模糊查询时应注意

有的时候会需要进行一些模糊查询比如

select*from contact where username like ‘%yue%’

 关键词%yue%,由于yue前面用到了“%”,因此该查询必然走全表扫描,除非必要,否则不要在关键词前加%,

 

5,联表查询

(1)    连接字段尽量选择聚集索引所在的字段

(2)    仔细考虑where条件,尽量减小A、B表的结果集

 获取下载地址  springMVC+mybatis+spring 整合 bootstrap HTML5

6,索引,

看sql 的性能,主要看执行计划,还有cpu成本,io成本等。这里就以一个简单的表为例。

首先,创建一个简单的表,一般会先建个主键,系统自动以主键建聚集索引。

判断是否需要优化sql的一个简单规则是:看执行计划中的操作是seek(搜索)还是scan(扫描)

是scan的话就要索引。

 

使用场景:

当一个系统查询比较频繁,而新建,修改等操作比较少时,可以创建覆盖索引,将查询字段和where子句里的字段全部包含在内,这样查询的速度会比以前快很多,同时也带来弊端,就是新建或修改等操作时,比没有索引或没有建立覆盖索引时的要慢。读写数据库分离也能解决问题

 

经常对Creator_Id字段查询,就做个索引。

对表Article的Creator_Id字段建索引

CREATE INDEX Ix_article_creatorid ON Article(Creator_Id)

set statistics io 和 set statistics,这是性能调优时查看相关cpu占用时间,IO资源数据的两个比较重要的命令

 

记得Order by 语句加索引

 

7,读写分离

 

当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性

主从分离,对数据库层面就是数据同步或者是数据复制;从应用层讲就是请求的分离:增删改请求主库,查询请求从库

 

8,尽量不用select * from …..

 

,而要写字段名 select field1,field2,…这条没什么好说的,主要是按需查询,不要返回不必要的列和行。

 

9 任何对列的操作都将导致表扫描,

它包括数据库函数、计算表达式等,查询时要尽可能将操作移至等号右边

10 In 、or子句常会使索引失效

显而易见的,IN,OR扩大的查询范围。

11通常情况下,连接比子查询效率要高

必然的,需要子查询时,也是用临时表暂存中间结果


您可能感兴趣的文档:

--结束END--

本文标题: SQL语句及数据库优化

本文链接: https://www.lsjlt.com/news/45949.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL语句及数据库优化
     1,统一SQL语句的写法对于以下两句SQL语句,程序员认为是相同的,数据库查询优化器认为是不同的。 所以封装成复用方法,用标准模板来控制。select*from d...
    99+
    2022-10-18
  • sql数据库语句如何优化
    这篇文章主要介绍sql数据库语句如何优化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 通常sql数据库需要进行优化分析,并且还有一定的技巧,sql优化...
    99+
    2022-10-18
  • 数据库SQL语句优化总结
    这篇文章主要介绍“数据库SQL语句优化总结”,在日常操作中,相信很多人在数据库SQL语句优化总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库SQL语句优化总结”的疑惑...
    99+
    2022-10-18
  • 如何优化数据库sql语句
    这篇文章将为大家详细讲解有关如何优化数据库sql语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。(01)选择最有效率的表名顺序(笔试常考)数据库的解析器按...
    99+
    2022-10-18
  • MySQL数据库的SQL语句优化方法
    1、使用 show status 了解各种 SQL 的执行频率 mysql> show status like "Com%"; 该命令可以查询 sql 命令的执行次数。 2、定位执行效率较低的 SQL 语句 定位执行效率较低的 S...
    99+
    2021-06-02
    MySQL数据库的SQL语句优化方法
  • mysql数据库优化语句
    本篇内容主要讲解“mysql数据库优化语句”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据库优化语句”吧!mysql优化语句 数据库语句:...
    99+
    2022-10-18
  • SQL语句优化
    一、SQL语句优化 (1)查看表结构 MariaDB [oldboy]> desc test1; +-------+----------+------+-----+---------+-------+...
    99+
    2022-10-18
  • MySQL 数据库SQL语句---DDL语句
    SQL语句---DDL语句==============================================================================概述:=========...
    99+
    2022-10-18
  • 【数据库】优化SQL语言
    博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢投,...
    99+
    2020-12-23
    【数据库】优化SQL语言
  • MySQL中数据库优化的常见sql语句总结
    目录1.SHOW ENGINES2.SHOW PROCESSLIST3.SHOW STATUS LIKE 'InnoDB_row_lock%'4.SHOW ENGINE INNODB STATUS5.SH...
    99+
    2022-08-23
  • 如何优化MySQL数据库中的SQL语句性能?
    如何优化MySQL数据库中的SQL语句性能?概述:MySQL是目前最常用的关系型数据库管理系统之一,它的性能影响着许多应用程序的运行效率。在开发和维护MySQL数据库时,优化SQL语句的性能是至关重要的。本文将介绍一些优化MySQL数据库中...
    99+
    2023-12-17
    MySQL 优化 SQL语句性能
  • MySQL8数据库安装及SQL语句详解
    目录MySQL8数据库安装一、Windows环境下安装A、下载MySQLB、解压并配置MySQL环境变量C、在解压根目录创建my.ini配置文件D、安装MySQL(以下操作必须是管理...
    99+
    2022-11-13
  • MySQL中数据库优化的常见sql语句有哪些
    这篇文章主要介绍“MySQL中数据库优化的常见sql语句有哪些”,在日常操作中,相信很多人在MySQL中数据库优化的常见sql语句有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-19
  • SQL 数据库T-SQL语句查询
             SQL 数据库T-SQL语句查询附加数据库的数据文件查询表中种类是水果的出厂日期在201-04-01之后的查询所有种类的总成本以倒序的方式...
    99+
    2022-10-18
  • SQL数据库语句大全
    目录基础创建数据库删除数据库备份sql server创建 备份数据的 device开始 备份创建新表根据已有的表创建新表:删除新表增加一个列添加主键删除主键创建索引删除索引创建视图删...
    99+
    2022-11-12
  • 【数据库】SQL 语句合集
    博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢投,...
    99+
    2016-01-08
    【数据库】SQL 语句合集
  • 几条数据库Sql语句
    (1)同一张表中可能存在多辆车的皮重记录,想更新最早的一条记录,即更新其皮重。在sqlite3中,如下:update  CarNoTable set Tar...
    99+
    2022-10-18
  • SQL语句优化技巧
    1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 orde...
    99+
    2022-10-18
  • sql查询语句优化
    sql查询语句优化 1、对查询进行优化,应尽量避免全表扫描 a、 where 及 order by 涉及的列上建立索引 b、 尽量避免在 where 子句中对字段进行 null 值判断,可以将null值设置默认值0等,如...
    99+
    2016-05-19
    sql查询语句优化 数据库入门 数据库基础教程 数据库 mysql
  • ORACLE之sql语句优化
    今天是四月份最后一天的上班时间,明天就开始假期了!~三天!希望自己能利用这几天好好补一补专业知识,今天晚上开始学习SQL优化课程!常规优化1:尽量避免使用* 列出所有列,因为系统对*解析成列明会消耗一定时间...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作