iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中优化的方法
  • 752
分享到

MySQL中优化的方法

2024-04-02 19:04:59 752人浏览 薄情痞子
摘要

这篇文章主要介绍Mysql中优化的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!优化方向sql优化sql优化分析索引优化优化数据库对象优化表的数据类型表拆分(水平、垂直)反范式使

这篇文章主要介绍Mysql优化的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

优化方向

sql优化
  1. sql优化分析

  2. 索引优化

优化数据库对象
  1. 优化表的数据类型

  2. 表拆分(水平、垂直)

  3. 反范式

  4. 使用中间表

优化 mySQL Server
  1. mysql内存管理优化

  2. log机制及优化

  3. 调整mysql并发参数

应用优化
  1. 数据库连接池

  2. 使用缓存减少压力

  3. 负载均衡建立集群

  4. 主主同步、主从复制

Mysql优化问题分析定位

分析SQL执行频率
show status

例如:分析读为主,还是写为主
定位执行效率低的SQl
慢查询日志定位-log-slow-queries = xxx(指定文件名)SHOW PROCESSLIST查看当前正在进行的线程,包括线程状态、是否
分析SQL执行计划
explain "your sql"desc "your sql"- 部分参数分析
select_type: SIMPLE 简单表,不使用表连接或子查询PRIMARY 主查询,即外层的查询UNION SUBQUER 子查询的第一个select

type: ALL 全表扫描
index 索引全扫描
range 索引范围扫描
ref 使用非唯一索引或唯一索引的前缀扫描
eq_ref 类似ref,使用的索引是唯一索引const/system 单表中最多有一个匹配行NULL 不用访问表或者索引,直接得到结果
show profile分析SQL
select @@have_profiling 是否支持
select @@profiling 是否开启

执行 "your sql"show profiles 
show profile block io for QUERY 17

索引优化

索引的存储分类
B-TREE索引:常见,大部分都支持HASH索引:只有memory引擎支持R-TREE索引:空间索引是MyISAM的一个特殊索引类型,主要用于地理空间数据类型
full-text索引:全文索引,MyISAM的一个特殊索引类型,innodb从5.6开始支持
索引的创建与删除
添加索引ALTER Table `table_name` ADD PRIMARY KEY(`column`)ALTER Table `table_name` ADD UNIQUE(`column`)ALTER Table `table_name` ADD INDEX(`column`)ALTER Table `table_name` ADD FULLTEXT(`column`)

删除ALTER Table `table_name` drop index index_name
Mysql中能使用索引的情况
匹配全值
匹配值范围查询
匹配最左前缀
仅仅对索引进行查询(覆盖查询)
匹配列前缀 (添加前缀索引)
部分精确+部分范围
不能使用索引的场景
以%开关的like查询
数据类型出现隐式转换
复合索引查询条件不包含最左部分
使用索引仍比全表扫描慢
用or分割开的条件

mysql语句优化

定期优化表
optimize table table_name 合并表空间碎片,对MyISAM、BDB、INNODB有效

如果提示不支持,可以用 mysql --skip-new 或者 mysql --safe-mode 来重启,以便让其他引擎支持
常用优化
尽量避免全表扫描,对where及orderby的列建立索引
尽量避免where使用 != 或 <>尽量避免where子句用 or 连接条件
乱用%导致全表扫描
尽量避免where子句对字段进行表达式操作
尽量避免where子句对字段进行函数操作
覆盖查询,返回需要的字段
优化嵌套查询,关联查询优于子查询
组合索引或复合索引,最左索引原则
用exist代替in当索引列有大量重复数据时,SQL查询可能不会去利用索引

优化数据库对象

优化表数据类型
PROCEDURE ANALYSE (16,256) 排除多于16个,大于256字节的ENUM建议"your sql" PROCEDURE ANALYSE ()
表拆分
垂直拆分
针对某些列常用、不常用

水平拆分
表很大
表中的数据有独立性,能简单分类
需要在表存放多种介质
反范式
增加冗余列、增加派生列、重新组表和分割表
使用中间表
数据查询量大
数据统计、分析场景

Mysql引擎比较

mysql有什么引擎?

MySQL中优化的方法

关于表引擎的命令
show engines; 查看myql所支持的存储引擎
show variables like '%storage_engine'; 查看mysql默认的存储引擎
show create table table_name 查看具体表使用的存储引擎
关于innodb
1. 提供事务、回滚、系统奔溃修复能力、多版本并发控制事务2. 支持自增列3. 支持外键4. 支持事务以及事务相关联功能5. 支持mvcc的行级锁
关于MyISAM
1. 不支持事务、不支持行级锁,只支持并发插入的表锁,主要用于高负载的select2. 支持三种不同的存储结构:静态、动态、压缩

调整参数优化mysql后台服务

MyISAM内存优化
#修改相应服务器位置的配置文件 my.cnf

key_buffer_size
决定myisam索引块缓存区的大小,直接影响表的存取效率,建议1/4可用内存

read_buffer 读缓存

write_buffer 写缓存
InnoDB内存优化
innodb_buffer_pool_size 存储引擎表数据和索引数据的最大缓存区大小

innodb_old_blocks_pct LRU算法 决定old sublist的比例

innodb_old_blocks_time LRU算法 数据转移间隔时间
mysql并发参数
max_connections 最大连接数,默认151back_log 短时间内处理大量连接,可适当增大

table_open_cache 控制所有SQL执行线程可打开表缓存的数量,受其他参数制约

thread_cache_size 控制缓存客户服务线程数量,加快数据库连接速度,根据threads_created/connections来衡量是否合适

innodb_lock_wait_timeout 控制事务等待行锁时间,默认50ms

Mysql应用优化介绍

为什么要做应用优化
  • 数据的重要性

  • mysql服务及自身性能瓶颈

  • 保证大型系统稳定可靠运行

应用优化方法
  1. 使用连接池

  2. 减少对mysql的真实连接
    a. 避免相同数据重复执行(查询缓存)
    b. 使用mysql缓存(sql缓存)

  3. 负载均衡
    a. LVS 分布式
    b. 读写分离(主主复制、主从复制保证数据一致性)

以上是“MySQL中优化的方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中优化的方法

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL中优化的方法
    这篇文章主要介绍MySQL中优化的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!优化方向SQL优化sql优化分析索引优化优化数据库对象优化表的数据类型表拆分(水平、垂直)反范式使...
    99+
    2024-04-02
  • MYSQL limit的优化方法
    本篇内容主要讲解“MYSQL limit的优化方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL limit的优化方法”吧! ...
    99+
    2024-04-02
  • mysql中有哪些优化方法
    mysql中有哪些优化方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、sql优化分解关联查询:将关联(join)放在应用中处理,执行简单的sql,好处是:分解后的sq...
    99+
    2023-06-15
  • MySQL语句的优化方法
    本篇内容主要讲解“MySQL语句的优化方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL语句的优化方法”吧! 1.建立基准,建立基准,建立基...
    99+
    2024-04-02
  • 常用的MySQL 优化方法
    数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷。   本文我们来...
    99+
    2023-09-02
    mysql 数据库 sql
  • mysql中find_in_set优化的方法是什么
    在MySQL中,可以通过使用适当的索引来优化FIND_IN_SET()函数的性能。 FIND_IN_SET()函数用于在逗号分隔的字...
    99+
    2024-04-09
    mysql
  • Linux上MYSQL的优化方法
    本篇内容介绍了“Linux上MYSQL的优化方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、CPU首先从CPU说起。你仔细检查的话,有...
    99+
    2023-06-16
  • Mysql 优化的几种方法
    MySQL是当前最流行的一个关系型数据库管理系统,广泛应用于各种互联网应用场景中。然而在实际的开发和运维过程中,我们经常会遇到一些性能问题,如查询慢、请求堆积等,需要通过MySQL优化来解决。本文将详细讲解MySQL优化的原理、方法和工具,...
    99+
    2023-08-19
    mysql 数据库 java
  • MySQL的查询优化方法
    本篇内容主要讲解“MySQL的查询优化方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的查询优化方法”吧!1、简介    &nb...
    99+
    2024-04-02
  • MySQL中的join语句算法及优化方法
    本篇内容主要讲解“MySQL中的join语句算法及优化方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中的join语句算法及优化方法”吧!一、joi...
    99+
    2024-04-02
  • 有哪些优化MySQL的方法
    这篇文章给大家分享的是有关有哪些优化MySQL的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。MySQL优化1.优化索引、SQL语句、分析慢查询;2.设计表的时候严格按照数据...
    99+
    2024-04-02
  • mysql优化的方法有哪些
    使用索引:在经常使用的列上创建索引可以提高查询速度。需要注意的是不要过度索引,否则会影响写操作的性能。 优化查询语句:避免使...
    99+
    2024-04-16
    mysql
  • mysql进行sql优化的方法
    小编给大家分享一下mysql进行sql优化的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql进行sql优化的方法:1...
    99+
    2024-04-02
  • mysql的优化方法有哪些
    本篇内容主要讲解“mysql的优化方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql的优化方法有哪些”吧!目前项目性能指标是20万用户,20并发...
    99+
    2024-04-02
  • 优化MySQL的方法有哪些
    这篇文章主要介绍了优化MySQL的方法有哪些,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。1、选取最适用的字段属性MySQL可以很好的支持大数据...
    99+
    2024-04-02
  • MySQL的性能优化方法论
    作者:禅与计算机程序设计艺术 1.简介 一、什么是MySQL? MySQL是一个开源的关系型数据库管理系统,由瑞典MySQL AB开发并发布。它的目的是为了快速、可靠地处理复杂的事务处理,支持多种编...
    99+
    2023-10-18
    大数据 人工智能 语言模型 Java Python 架构设计
  • 优化mysql数据库的方法
    这篇文章主要介绍了优化mysql数据库的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。1、创建索引对于查询占主要的应用来说,索引显得尤为重要...
    99+
    2024-04-02
  • MySQL优化的方法是什么
    这篇文章主要介绍“MySQL优化的方法是什么”,在日常操作中,相信很多人在MySQL优化的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL优化的方法是什么”...
    99+
    2024-04-02
  • MySQL优化及索引的方法
    这篇“MySQL优化及索引的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL优化及索引的方法”文章吧。索引简单介...
    99+
    2023-06-29
  • MySQL中时间区间查询的优化方法
    MySQL中时间区间查询是在实际项目中经常遇到的性能优化问题之一,合理的时间区间查询可以极大地提高查询效率。本文将介绍一些优化方法,并结合具体的代码示例来演示。 使用索引 在进行时间区...
    99+
    2024-03-01
    mysql优化 时间优化 时间区间查询
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作