`
cobo85
  • 浏览: 117561 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL性能优化浅谈

阅读更多

     数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),都需要注意数据操作的性能,下面简要总结下自己工作以来对sql优化的一点心的(请先根据实际情况给必要字段增加索引)。

    1、查询时尽量减少笛卡尔积的大小,特别是在表中数据超百万的大数据情况下。有关系的表之间直接进行join操作,有时候这样虽然是简便但并不是所有情况下都合适的。可以通过子查询等方式,把单表的数据先过出去大部分,然后在进行join的操作。前些时间优化报表,某报表在优化前需要20分钟才能查的出来,经过过滤优化之后8秒就可以搞定。

    2、为查询增加缓存,特别是对一些不经常改动的数据。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,以后的同样查询就会直接用缓存而不再次查询数据库,这样就要求在sql在解释时候最好存在相同的以往已经执行过的sql语句。这个一般对时间作为查询条件的多注意下就可以了。

    3、多使用使用EXPLAIN关键字,分析查询语句或是表结构的性能瓶颈,这也是最基本的。推荐一个toad工具,在返回的结果集旁边可以增加查看EXPLAIN的结果。

    4、如果查询结果只是作为一种存在不存在的判断,或者在查询前可以断定最多有几条,那么加个limit 1/max 会更好些。

    5、不要随便的select * ,即便是用hibernate等orm框架,如果你只需要一个大对象的其中一两个字段,那么最好只取所需的。

    6、建表的时候最好让字段not null ,字符型可用"",数字型可用0来代替,当然特出需要还是要用的。另外如果可以决定字段的长度,那么最好建表的时候就决定,char能搞定的就不要用varchar了。

    7、根据实际情况选着合适的存储引擎,如果没有事务之类的,只是一些历史数据查询,那么选择MyISAM应该是最合适的,利用etl构建的报表系统。

分享到:
评论

相关推荐

    浅谈MySQL和MariaDB区别(mariadb和mysql的性能比较)

    而在涉及排序的查询中,尽管MariaDB仍然比MySQL快,但在执行特定的分页优化查询时,其性能不如MySQL。 值得注意的是,数据库性能往往受到多种因素的影响,包括硬件配置、索引策略、SQL查询优化、并发处理能力以及...

    从运维角度浅谈MySQL数据库优化 数据库运维.pdf

    《从运维角度浅谈MySQL数据库优化》 MySQL数据库在企业应用中扮演着至关重要的角色,其性能直接影响到系统的响应速度和用户体验。一个成熟的数据库架构并非一蹴而就,而是随着用户量的增长逐步完善的。本文主要探讨...

    浅谈MySQL数据库性能优化

    本文侧重通过优化MySQL 数据库缓存参数如查询缓存,表缓存,日志缓存,索引缓存,innodb缓存,插入缓存,以及连接参数等方式来对MySQL数据库进行优化。  缓存参数  这里先引用一句话,从内存中读取一个数据的...

    浅谈MySQL中优化sql语句查询常用的30种方法.doc

    浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法 MySQL 是一种广泛使用的关系数据库管理系统,优化 SQL 语句查询是提高数据库性能的关键。下面是浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法: 一、避免全表...

    浅谈MYSQL中的索引优化-收藏学习.pdf

    ### 浅谈MYSQL中的索引优化 #### 一、MySQL中的索引与B+树 在MySQL数据库系统中,索引被广泛应用于提高数据检索的效率。索引本质上是一种数据结构,它允许用户快速定位数据库中的记录。在MySQL中,B+树是最常见的...

    浅谈基于MySQL数据库结构设计.pptx

    浅谈基于MySQL数据库结构设计 本文将围绕MySQL数据库结构设计进行讨论,旨在帮助读者更好地理解和应用MySQL数据库。 MySQL是一个开源的关系型数据库管理系统,它使用了一种名为Structured Query Language(SQL)的...

    浅谈MySQL大表优化方案

    MySQL数据库本身高度灵活,造成性能不足,严重依赖开发人员的表设计能力以及索引优化能力,在这里给几点优化建议 时间类型转化为时间戳格式,用int类型储存,建索引增加查询效率 建议字段定义not null,null值很难...

    浅谈MySQL索引优化分析

    为了进一步优化MySQL性能,我们还需要关注数据库的设计,例如合理的数据分区、存储引擎的选择(如InnoDB支持行级锁定,适合高并发场景),以及定期进行性能分析和调整。此外,还可以通过缓存技术(如Redis)和数据库...

    使用Mysql来搭建可扩展的SNS网站(浅谈)

    标题与描述:“使用Mysql来搭建可扩展的SNS网站(浅谈)” 知识点解析: 在探讨使用MySQL来搭建可扩展的社交网络服务(SNS)网站的过程中,文章重点介绍了如何利用MySQL数据库来应对SNS网站特有的数据挑战,特别是在...

    运维角度浅谈MySQL数据库优化

    数据库性能优化是提升系统处理能力的核心环节。在普通X86服务器上,未经优化的MySQL可能只能处理约2000 QPS,而优化后可提升至2500 QPS。优化可以从三个方面入手: 1. 数据库配置优化:选择合适的存储引擎至关重要...

    浅谈MySQL分页Limit的性能问题

    总之,理解`LIMIT`的性能问题并采用适当的优化手段,是提升MySQL数据库应用性能的关键。合理地使用索引、子查询和JOIN可以帮助我们避免在大数据量时扫描过多的记录,从而显著提高查询速度。在开发过程中,应结合具体...

    MySQL查询优化:连接查询排序浅谈

    在MySQL查询优化中,连接查询和排序是两个关键的环节,尤其当它们结合在一起时,可能会引发性能问题。本文将探讨一个具体的例子,即在连接查询中加入`ORDER BY`子句导致效率骤降的问题,以及如何通过优化SQL语句来...

    浅谈MySQL中优化sql语句查询常用的30种方法

    在MySQL数据库管理中,SQL语句的优化是提高数据库性能的关键。以下是对SQL查询优化的30种常用方法的详细分析: 1. **避免全表扫描**:在编写查询时,优先考虑在`WHERE`和`ORDER BY`涉及的列上创建索引,以减少查询...

    浅谈InnoDB隔离模式的使用对MySQL性能造成的影响

    在这篇文章里我将讨论一个相关的主题 – InnoDB 事务隔离模式,还有它们与MVCC(多版本并发控制)的关系,以及它们是如何影响MySQL性能的。 MySQL手册提供了一个关于MySQL支持的事务隔离模式的恰当描述 – 在这里我...

    Web应用系统的缓存技术浅谈

    【缓存技术浅谈】 缓存技术是一种优化性能的关键手段,尤其在Web应用系统中扮演着重要角色。本文将探讨缓存的基本概念、其在Web应用系统中的作用以及各种类型的缓存技术。 缓存,也称作Cache,是高速缓冲存储器,...

Global site tag (gtag.js) - Google Analytics