iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库的性能分析
  • 686
分享到

MySQL数据库的性能分析

2024-04-02 19:04:59 686人浏览 独家记忆
摘要

本篇内容主要讲解“Mysql数据库的性能分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据库的性能分析”吧!  1. Mysql性能优化简介  在

本篇内容主要讲解“Mysql数据库的性能分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习mysql数据库的性能分析”吧!


  1. Mysql性能优化简介
  在WEB应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最 多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化
  优化是一个复杂的任务,本文描述MySQL相关的数据库设计和查询优化,服务器端优化,存储引擎优化。
  2. 数据库设计和查询优化
  在MySQL性能优化中,首先要考虑的就是Database Schema设计,这一点是非常重要的。一个糟糕的Schema设计即使在性能调优的MySQL Server上运行,也会表现出很差的性能;和Schema相似,查询语句的设计也会影响MySQL的性能,应该避免写出低效的SQL查询。这一节将详细 讨论这两方面的优化。
  2.1 Schema Design
  Schema的优化取决于将要运行什么样的query,不同的query会有不同的Schema优化方案。2.2节将介绍Query Design的优化。Schema设计同样受到预期数据集大小的影响。Schema设计时主要考虑:标准化,数据类型,索引
  2.1.1 标准化
  标准化是在数据库中组织数据的过程。其中包括,根据设计规则创建表并在这些表间建立关系;通过取消冗余度与不一致相关性,该设计规则可以同时保 护数据并提高数据的灵活性。通常数据库标准化是让数据库设计符合某一级别的范式,通常满足第三范式即可。也有第四范式(也称为 Boyce Codd范式,BCNF))与第五范式存在,但是在实际设计中很少考虑。忽视这些规则可能使得数据库的设计不太完美,但这不应影响功能。
  标准化的特点:
  1) 所有的"对象"都在它自己的table中,没有冗余。
  2) 数据库通常由E-R图生成。
  3) 简洁,更新属性通常只需要更新很少的记录。
  4) Join操作比较耗时。
  5) Select,sort优化措施比较少。
  6) 适用于OLTP应用。
  非标准化的特点:
  1) 在一张表中存储很多数据,数据冗余。
  2) 更新数据开销很大,更新一个属性可能会更新很多表,很多记录。
  3) 在删除数据是有可能丢失数据。
  4) Select,order有很多优化的选择。
  5) 适用于DSS应用。
  标准化和非标准化都有各自的优缺点,通常在一个数据库设计中可以混合使用,一部分表格标准化,一部分表格保留一些冗余数据:
  1) 对OLTP使用标准化,对DSS使用非标准化
  2) 使用物化视图。MySQL不直接支持该数据库特性,但是可以用MyISAM表代替。
  3) 冗余一些数据在表格中,例如将ref_id和name存在同一张表中。但是要注意更新问题。
  4) 对于一些简单的对象,直接使用value作为建。例如IP address等
  5) Reference by PRIMARY/UNIQUE KEY.MySQL可以优化这种操作,例如:
  java 代码
  select city_name from city,state where state_id=state.id and state.code='CA'" converted to "select city_name from city where state_id=12
  2.1.2 数据类型
  最基本的优化之一就是使表在磁盘上占据的空间尽可能小。这能带来性能非常大的提升,因为数据小,磁盘读入较快,并且在查询过程中表内容被处理所占用的内存更少。同时,在更小的列上建索引,索引也会占用更少的资源。
  可以使用下面的技术可以使表的性能更好并且使存储空间最小:
  1) 使用正确合适的类型,不要将数字存储为字符串
  2) 尽可能地使用最有效(最小)的数据类型。MySQL有很多节省磁盘空间和内存的专业化类型。
  3) 尽可能使用较小的整数类型使表更小。例如,MEDIUMINT经常比INT好一些,因为MEDIUMINT列使用的空间要少25%.
  4) 如果可能,声明列为NOT NULL.它使任何事情更快而且每列可以节省一位。注意如果在应用程序中确实需要NULL,应该毫无疑问使用它,只是避免 默认地在所有列上有它。
  5) 对于MyISAM表,如果没有任何变长列(VARCHAR、TEXT或BLOB列),使用固定尺寸的记录格式。这比较快但是不幸地可能会浪费一些空间。即 使你已经用CREATE选项让VARCHAR列ROW_FORMAT=fixed,也可以提示想使用固定长度的行。
  6) 使用sample character set,例如latin1.尽量少使用utf-8,因为utf-8占用的空间是latin1的3倍。可以在不需要使用utf-8的字段上面使用 latin1,例如mail,url等。
  2.1.3 索引
  所有MySQL列类型可以被索引。对相关列使用索引是提高SELECT操作性能的最佳途径。使用索引应该注意以下几点:
  1) MySQL只会使用前缀,例如key(a, b) …where b=5 将使用不到索引。
  2) 要选择性的使用索引。在变化很少的列上使用索引并不是很好,例如性别列。
  3) 在Unique列上定义Unique index.
  4) 避免建立使用不到的索引。
  5) 在Btree index中(InnoDB使用Btree),可以在需要排序的列上建立索引。
  6) 避免重复的索引。
  7) 避免在已有索引的前缀上建立索引。例如:如果存在index(a,b)则去掉index(a)。
  8) 控制单个索引的长度。使用key(name(8))在数据的前面几个字符建立索引。
  9) 越是短的键值越好,最好使用integer.
  10) 在查询中要使用到索引(使用explain查看),可以减少读磁盘的次数,加速读取数据。
  11) 相近的键值比随机好。Auto_increment就比uuid好。
  12) Optimize table可以压缩和排序index,注意不要频繁运行。
  13) Analyze table可以更新数据。
  2.2 Designing queries
  查询语句的优化是一个Case by case的问题,不同的sql有不同的优化方案,在这里我只列出一些通用的技巧。
  1) 在有index的情况下,尽量保证查询使用了正确的index.可以使用EXPLAIN select …查看结果,分析查询。
  2) 查询时使用匹配的类型。例如select * from a where id=5, 如果这里id是字符类型,同时有index,这条查询则使用不到index,会做全表扫描,速度会很慢。正确的应该是 … where id="5" ,加上引号表明类型是字符。
  3) 使用--log-slow-queries –long-query-time=2查看查询比较慢的语句。然后使用explain分析查询,做出优化。
  3. 服务器端优化
  3.1 MySQL安装
  MySQL有很多发行版本,最好使用MySQL AB发布的二进制版本。也可以下载源代码进行编译安装,但是编译器和类库的一些bug可能会使编译完成的MySQL存在潜在的问题。

到此,相信大家对“MySQL数据库的性能分析”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库的性能分析

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL数据库的性能分析
    本篇内容主要讲解“MySQL数据库的性能分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库的性能分析”吧!  1. MySQL性能优化简介  在...
    99+
    2022-10-18
  • MySQL数据库服务器的性能分析
    小编给大家分享一下MySQL数据库服务器的性能分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!3.1简介性能:为完成某件任务所...
    99+
    2022-10-18
  • MySQL数据库性能优化的示例分析
    小编给大家分享一下MySQL数据库性能优化的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么做优化??因为数据量太多了,项目部署上线再到用户使用,每天...
    99+
    2023-06-22
  • 【Azure SQL】数据库性能分析
    前置条件 用户有查询数据统计权限 GRANT VIEW DATABASE STATE TO database_user; CPU性能问题 正在发生 查看前X个CPU消耗查询 (汇总) SELECT TOP 10 ...
    99+
    2016-02-11
    【Azure SQL】数据库性能分析
  • PolarDB数据库性能实例分析
    这篇文章主要讲解了“PolarDB数据库性能实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PolarDB数据库性能实例分析”吧!赛题概览比赛总体分成...
    99+
    2022-10-19
  • Mysql通过explain分析定位数据库性能问题
    目录引言explain基础exlpain分析实战总结引言 数据库性能优化是每个后端程序猿必备的基础技能之一,而mysql中的explain堪称Mysql的性能优化分析神器,我们可以通过它来分析SQL语句的对应的执行计划在...
    99+
    2023-01-13
    Mysql的explain使用 Mysql的explain
  • MySQL数据库性能优化之SQL优化的示例分析
    这篇文章将为大家详细讲解有关MySQL数据库性能优化之SQL优化的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  注:这篇文章是以 MySQL 为背景,很多内容...
    99+
    2022-10-19
  • PHP与数据库性能分析的集成
    PHP作为一种开源的服务器端脚本语言,广泛应用于Web开发领域。为了提高服务器端应用程序的性能,开发人员需要针对系统进行性能分析,找出瓶颈所在并加以优化。在众多性能分析工具中,数据库性能分析工具是至关重要的一环。本文将探讨PHP与数据库性能...
    99+
    2023-05-16
    数据库 PHP 性能分析
  • MySQL通过showstatus查看、explain分析优化数据库性能
    1.概述 在应用系统开发过程中,由于初期数据量小,开发人员写SQL语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多SQL语句开始逐渐显露出性能问题,...
    99+
    2022-11-13
  • ORACLE数据库性能优化的示例分析
    这篇文章给大家分享的是有关ORACLE数据库性能优化的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ORACLE数据库的优化方式和MYSQL等很大的区别,今天通过一个OR...
    99+
    2022-10-18
  • MySQL数据库的示例分析
    这篇文章给大家分享的是有关MySQL数据库的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数据库概要数据库(Database)是存储与管理数据的软件系统,就像一个存入...
    99+
    2022-10-18
  • MySQL性能参数的示例分析
    这篇文章主要介绍MySQL性能参数的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! max_connect_errors是一个MySQL中与安全有关的计数器值,它负责阻止过...
    99+
    2022-10-18
  • 分析PostgreSQL DBA数据库的性能指标变化
    本篇内容主要讲解“分析PostgreSQL DBA数据库的性能指标变化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析PostgreSQL DBA数据库的性能...
    99+
    2022-10-18
  • mysql数据库服务器性能剖析要点
    一、查看慢查询 ...
    99+
    2022-10-18
  • MySQL性能分析(Explain)
    更多知识,请移步我的小破站:http://hellofriend.top 1. 概述 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈...
    99+
    2021-11-05
    MySQL性能分析(Explain)
  • MySQL数据库丢失数据的场景分析
    本篇内容主要讲解“MySQL数据库丢失数据的场景分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库丢失数据的场景分析”吧! MySQL数据库丢...
    99+
    2022-10-18
  • MySQL数据库的性能优化
    目录一、mysql数据库的优化目标、基本原则:1、优化目标:2.基本原则:二、定位分析SQL语句的性能瓶颈:1、通过show status 命令了解各种SQL的执行效率:2、定位执行效率较低的SQL语句3、通过expla...
    99+
    2023-04-11
    MySQL性能优化 数据库性能优化 sql性能优化
  • 数据库的读一致性分析
    前言提起数据库的事务,我们就会想到ACID特性:A:Atomicity 原子性    事务中包含的各种操作,要么一起成功,要么全部失败C:Consistency 一致性  事务...
    99+
    2022-10-18
  • MYSQL数据交互原理与性能问题分析
    我们在性能测试监控MYSQL数据库时,作为专业非功能性测试人员,我们需要了解操作系统工作原理、业务实现架构逻辑、应用架构实现逻辑、数据库工作原理,才能真正的做好非功能性测试,而大部分业务型交易问题都是因为数...
    99+
    2022-10-18
  • MySQL MVCC 原理分析与实战:提升数据库性能的关键策略
    MySQL是一种功能强大的关系型数据库管理系统,广泛应用于各种应用程序的开发中。为了提高数据库的性能,MySQL引入了MVCC(多版本并发控制)机制。本文将分析MVCC的原理,并提供一些实战策略,帮助读者优化MySQL数据库性能。MVCC是...
    99+
    2023-10-22
    MySQL 性能优化 mvcc
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作