`
wangemperor
  • 浏览: 39782 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

大数据的数据库优化

 
阅读更多
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。	

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.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where num/2=100
应改为:
select id from t where num=100*2	

8.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where substring(name,1,3)='abc'--name以abc开头的id
应改为:
select id from t where name like 'abc%'	

9.不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。	

10.在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,
否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。	

11.不要写一些没有意义的查询,如需要生成一个空表结构:
select col1,col2 into #t from t where 1=0
这类代码不会返回任何结果集,但是会消耗系统资源的,应改成这样:
create table #t(...)	

12.很多时候用 exists 代替 in 是一个好的选择:
select num from a where num in(select num from b)
用下面的语句替换:
select num from a where exists(select 1 from b where num=a.num)	

13.并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,
如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。	

14.索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,
因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。
一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。	

15.尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。
这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。	

16.尽可能的使用 varchar 代替 char ,因为首先变长字段存储空间小,可以节省存储空间,
其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。	

17.任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。	

18.避免频繁创建和删除临时表,以减少系统表资源的消耗。	

19.在新建临时表时,如果一次性插入数据量很大,那么可以使用 select into 代替 create table,避免造成大量 log ,
以提高速度;如果数据量不大,为了缓和系统表的资源,应先create table,然后insert。	

20.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。	

21.使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。	

22.尽量避免大事务操作,提高系统并发能力。	

23.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。
分享到:
评论

相关推荐

    大数据数据库及其分类.pdf

    大数据数据库及其分类是现代信息技术领域中的重要组成部分,尤其在互联网行业,大数据的处理和分析已经成为企业决策和业务发展不可或缺的工具。本文将深入探讨大数据生态、数据库类型以及相关的理论基础。 大数据...

    大数据数据库的特点及处理技术分析.zip

    大数据数据库是现代信息技术领域中的重要组成部分,它与传统的数据库系统有着显著的区别,主要体现在规模、复杂性、处理速度以及分析能力等方面。随着互联网、物联网、社交媒体等数据源的爆炸式增长,大数据数据库...

    HIT23春大数据数据库三次实验报告和代码

    1.制作一个数据库系统 设计ER图并转换成关系模式 并利用python/java变成语言制作界面和功能 实现小型系统...3.验证物理数据库设计-------索引结构的验证 通过explain语句 探寻DBMS如何利用自身建立的索引进行查询的优化

    大数据优化

    五、Oracle数据库优化 在大数据环境中,Oracle数据库的优化包括索引策略、查询优化、存储优化和并发控制。合理的索引可以加速查询,智能查询优化器能自动选择最佳执行计划,而分区技术和压缩技术可以减少存储需求。...

    大数据下的MySQL数据库的效率优化 (1).pdf

    数据库优化技术在大数据时代的重要性 摘要:在大数据时代,数据库的优化变得尤为重要。为了提高数据库的效率,需要对数据库进行优化。MySQL 是一种流行的数据库管理系统,广泛应用于各种行业。然而,在大数据时代,...

    大数据背景下数据库技术应用分析.pptx

    在大数据背景下,分布式数据库、NoSQL数据库和NewSQL数据库等新兴数据库技术将继续得到优化和发展,以满足不断增长的大数据需求。数据库技术将与人工智能、机器学习、区块链等技术相结合,以实现更加智能化的数据...

    大数据背景下的数据库新技术探讨.pdf

    同时,大数据技术强调的是在大规模数据集上的统一管理和高效处理,因此大数据数据库系统往往具有较高的规模和较低的价值密度。 大数据的特点主要体现在以下两个方面: 1. 统一性:传统数据库系统在应用不同数据库...

    大数据视域下数据库技术的应用.zip

    三、大数据数据库类型 1. 分布式数据库:例如HBase、Cassandra,通过分布式存储和计算来处理大数据。 2. 关系型数据库扩展:如Greenplum、Vertica,通过扩展关系型模型以适应大数据。 3. NoSQL数据库:如MongoDB、...

    企业大数据云平台功能优化方案.pdf

    1.2.1.2 数据库优化:针对SQL查询性能、索引结构、数据分区等进行调整,以提高查询效率和响应速度,同时考虑数据库的扩展性和高可用性。 2. 其他功能描述 2.1 其他优化需求 除了平台层面的优化,还需要关注其他...

    大数据时代关系数据库MySQL的创新与发展.docx

    尽管面临大数据的挑战,MySQL作为一款流行的关系数据库管理系统,通过持续创新来应对大数据所带来的可扩展性、可靠性和可用性要求。 大数据的特征包括巨大的数据量、多样化数据类型、低价值密度以及快速处理需求。...

    面向程序员的数据库访问性能优化法则

    面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则

    用大数据来优化数据管理与数据湖建设.pdf

    因此,这个文件可能涵盖了如何利用大数据技术来提升数据库性能、优化数据治理、实现数据湖的建设和运维等方面的知识。 从标签“DTCC数据库大会”来看,本文可能会讨论以下几点: 1. **大数据技术的应用**:介绍...

    基于.net的大数据量SQLSERVER系统数据库和代码优化方案.pdf

    标题中的“基于.NET的大数据量SQLSERVER系统数据库和代码优化方案”指的是针对处理大量数据的SQL Server数据库系统,结合.NET框架的应用程序进行性能优化的方法。描述中提到的是针对SQL Server数据库在处理大数据量...

    大数据时代的数据库75.pptx

    HBase是建立在Hadoop之上的NoSQL数据库,它针对大数据场景优化了读写性能,尤其适合实时数据查询。此外,NoSQL数据库如MongoDB、Cassandra等也是应对大数据挑战的解决方案,它们提供非关系型的数据模型,能更好地...

    大数据-数据库类型简介.docx

    数据库是存储和管理数据的核心工具,特别是在大数据时代,选择合适的数据库类型至关重要。本文主要介绍了不同类型的数据库及其特性,包括...在很多情况下,经过合理的设计和优化,传统的数据库系统也能应对大数据挑战。

    大数据下的MySQL数据库的效率优化.pdf

    【MySQL数据库在大数据环境下的效率优化】 MySQL数据库作为广泛应用的开源关系型数据库,在大数据时代面临着更高的性能要求。在处理大规模数据查询时,数据库的效率优化显得尤为重要,因为这直接影响到查询速度和...

Global site tag (gtag.js) - Google Analytics