`

如何优化数据库查询

 
阅读更多

宏观:

1.缓存。在持久层或持久层之上做缓存。 从数据库中查询出来的数据先放入缓存中,下次查询时,先访问缓存,如果未命中则查询数据库。
2.表分区和拆分.无论是业务逻辑上的拆分还是无业务含义的分区。
3.提高磁盘速度.这包括RAID和其他磁盘文件分段的处理。主要的思想是提高磁盘的并发度(多个物理磁盘存放同一个文件)。
 
微观:
表设计方面:
1.字段冗余.减少跨库查询和大表连接操作。
2.数据库表的大字段剥离.保证单条记录的数据量很小。
3.恰当地使用索引甚至是多级索引。
查询优化方面:
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描
,如:
select id from t where num=10 or num=20可以这样查询:
select id from t where num=10 union all select id from t where num=20
5.in 和 not in 也要慎用,否则会导致全表扫描,如:
select id from t where num in(1,2,3)
对于连续的数值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3
6.下面的查询也将导致全表扫描:
select id from t where name like '%abc%' 若要提高效率,可以考虑全文检索。
7.索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有 必要。
8.尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。
9.任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。
10.避免频繁创建和删除临时表,以减少系统表资源的消耗。
分享到:
评论

相关推荐

    怎样优化数据库查询,提高优化效率?.pdf

    优化数据库查询提高效率 在数据存储和处理中,数据库查询优化是非常重要的一环。如何优化数据库查询以提高效率是开发者和数据库管理员需要关心的问题。本文将从查询语句、索引、使用临时表等方面讨论数据库查询优化...

    MySQL数据库查询优化

    第2课 数据库查询优化技术总揽 综述查询优化技术范围,包括查询重用、查询重写规则、查询算法优化、并行查询优化等 综述逻辑查询优化,包括子查询的优化、视图重写、等价谓词重写、条件化简、连接消除、非SPJ的优化...

    论文研究-基于粒子群算法的数据库查询优化.pdf

    为了解决大型数据库信息检索困难、查询效率低的问题,提出了一种基于粒子群算法优化数据库查询技术方案。算法提出了一种数据库查询执行计划代价模型,主要包括了查询多链接次序以及副本的选择问题,准确定义了数据库...

    数据库查询优化.ppt

    数据库查询优化是指通过对数据库查询语句和数据库结构的优化来提高数据库查询效率的过程。数据库查询优化的目的是减少查询时间,提高数据库系统的性能和可扩展性。 索引是提高数据库查询效率的重要手段。索引是一种...

    数据库查询优化算法

    一共有三种经典的查询优化算法,真的值得一看,懂的下吧....

    遗传算法和实时数据库规则结合的数据库查询优化方案设计.pdf

    "遗传算法和实时数据库规则结合的数据库查询优化方案设计" 本文旨在结合遗传算法和实时数据库规则,设计一个数据库查询优化方案。数据库的建立是实现各种类型事务查询的关键,而现有的查询处理系统无法满足实时...

    PB对数据库查询的优化.doc

    PB对数据库查询的优化.PB对数据库查询的优化.PB对数据库查询的优化.PB对数据库查询的优化.PB对数据库查询的优化.PB对数据库查询的优化.PB对数据库查询的优化.PB对数据库查询的优化.PB对数据库查询的优化.PB对数据库...

    5.PostgreSQL数据库查询调优分享1

    本文将分享 PostgreSQL 数据库查询调优的实践经验和技术要点,帮助读者更好地优化数据库查询性能。 一、查询优化的重要性 查询优化是数据库性能优化的核心,直接影响着数据库的整体性能。数据库查询的速度和效率将...

    分布式数据库查询优化算法综述

    分布式数据库查询优化算法综述,介绍了分布式数据库查询优化的基本思想

    数据库sql查询语句练习3_习题_结果(单世民)仓库_习题[归纳].pdf

    数据库查询优化是指在数据库查询中提高查询效率和降低资源消耗的技术。数据库查询优化可以通过索引、缓存、并行查询等方法来实现。 本资源摘要信息提供了一个数据库 SQL 查询语句练习,涵盖了创建表、插入数据、单...

    基于MySQL的数据库查询性能优化.pdf

    "基于MySQL的数据库查询性能优化" 在当前的Web应用开发中,数据库的查询操作已经成为整个应用的性能瓶颈, especialmente 对于使用 MySQL 的 Web 应用。因此,数据库查询性能的优化已经成为一个非常重要的课题。...

    Oracle数据库查询优化的方法

    Oracle数据库查询优化的方法 Oracle数据库查询优化的方法

    医院HIS系统SQLServer数据库性能优化.pdf

    数据库查询优化是指通过优化数据库查询语句来提高数据库查询的性能。例如,可以使用索引、优化查询语句、避免使用SELECT \*等来提高数据库查询的性能。 5. 数据库备份和恢复优化 数据库备份和恢复优化是指通过优化...

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    sql查询优化 提高MySQL数据库查询效率的几个技巧

    数据库查询优化器艺术

    数据库查询优化器的艺术,深入剖析数据库查询器实现源码及原理。

    数据库查询优化论文

    这是一片详细的介绍数据库查询优化的研究性论文。

    北邮数据库实验8 数据查询分析优化实验

    熟悉了解SQL SERVER数据库中查询优化的使用,理解数据库查询优化的基本概念。 2. 掌握利用SQL Server Management Studio提供的机制,分析对比形式不同、执行结果等价的不同SQL语句的查询执行计划的执行成本和执行...

    matlab如何敲代码-HorsePower:使用数组编程优化数据库查询

    HorsePower旨在使用现代硬件优化数据库查询。 它的核心是HorseIR ,它是一种经过精心设计的基于数组的中间表示(IR),用于数据库查询。 基于HorseIR,可以将复杂的编译器优化应用于数据库操作。 此外,使用数组编程...

    数据库查询速度优化 建立索引

    怎样优化数据库查询,使其速度更快。 索引的建立。

Global site tag (gtag.js) - Google Analytics