mysql优化参数(如何设置合理的mysql的参数)

2024-07-12 09:58:54 37

mysql优化参数(如何设置合理的mysql的参数)

本文目录

如何设置合理的mysql的参数

为了设置合理的MySQL参数,需要根据实际情况和使用场景来进行调整。通常而言,你应该关注以下几个方面:

  1. 连接数量: 在MySQL中有一个max_connections参数,用于限制MySQL服务器能够同时支持的客户端连接数。 

  2. 数据库缓存: MySQL有一个query_cache参数,用于设置查询结果的缓存大小,以便加快对相同SQL语句的多次执行。 

  3. 数据库日志: MySQL有一个log_error参数,用于设置日志文件的位置和大小,以便更好地监控MySQL的运行情况。

NineData是一款非常有特色的数据库SQL开发产品,对MySQL常用功能支持非常完整,包括智能的SQL补全、SQL执行历史、结果集、数据对比、结构对比、数据迁移与复制等。它采用SaaS架构模式,用户不仅可以免费使用,而且无需下载安装,上手比较简单。NineData产品更新迭代比较敏捷,对于开发者的新需求响应比较迅速。另外,该产品在多云适配上是其重要的强项,支持多种连接和访问云数据库的方式,对阿里云、腾讯云、华为云、AWS等都有比较好的支持。另外,也适配国内比较流行的PolarDB、GaussDB、TDSQL等数据库。

对于新用户NineData还会赠送两个示例数据库,供用户使用。另外,NineData还提供了企业级SQL开发能力,支持多用户管理、数据库访问权限控制、变更流程、SQL规范、SQL与操作审计等内容,可以较好的解决企业内多人协作访问数据库的问题。

mysql性能优化,欢迎高手

在开始演示之前,我们先介绍下两个概念。

概念一,数据的可选择性基数,也就是常说的cardinality值。

查询优化器在生成各种执行计划之前,得先从统计信息中取得相关数据,这样才能估算每步操作所涉及到的记录数,而这个相关数据就是cardinality。简单来说,就是每个值在每个字段中的唯一值分布状态。

比如表t1有100行记录,其中一列为f1。f1中唯一值的个数可以是100个,也可以是1个,当然也可以是1到100之间的任何一个数字。这里唯一值越的多少,就是这个列的可选择基数。

那看到这里我们就明白了,为什么要在基数高的字段上建立索引,而基数低的的字段建立索引反而没有全表扫描来的快。当然这个只是一方面,至于更深入的探讨就不在我这篇探讨的范围了。

概念二,关于HINT的使用。

这里我来说下HINT是什么,在什么时候用。

HINT简单来说就是在某些特定的场景下人工协助MySQL优化器的工作,使她生成最优的执行计划。一般来说,优化器的执行计划都是最优化的,不过在某些特定场景下,执行计划可能不是最优化。

比如:表t1经过大量的频繁更新操作,(UPDATE,DELETE,INSERT),cardinality已经很不准确了,这时候刚好执行了一条SQL,那么有可能这条SQL的执行计划就不是最优的。为什么说有可能呢?

来看下具体演示

譬如,以下两条SQL,

  • A:

  • select * from t1 where f1 = 20;
  • B:

  • select * from t1 where f1 = 30;
  • 如果f1的值刚好频繁更新的值为30,并且没有达到MySQL自动更新cardinality值的临界值或者说用户设置了手动更新又或者用户减少了sample page等等,那么对这两条语句来说,可能不准确的就是B了。

    这里顺带说下,MySQL提供了自动更新和手动更新表cardinality值的方法,因篇幅有限,需要的可以查阅手册。

    那回到正题上,MySQL 8.0 带来了几个HINT,我今天就举个index_merge的例子。

    示例表结构:

  • mysql》 desc t1;+------------+--------------+------+-----+---------+----------------+| Field      | Type         | Null | Key | Default | Extra          |+------------+--------------+------+-----+---------+----------------+| id         | int(11)      | NO   | PRI | NULL    | auto_increment || rank1      | int(11)      | YES  | MUL | NULL    |                || rank2      | int(11)      | YES  | MUL | NULL    |                || log_time   | datetime     | YES  | MUL | NULL    |                || prefix_uid | varchar(100) | YES  |     | NULL    |                || desc1      | text         | YES  |     | NULL    |                || rank3      | int(11)      | YES  | MUL | NULL    |                |+------------+--------------+------+-----+---------+----------------+7 rows in set (0.00 sec)
  • 表记录数:

  • mysql》 select count(*) from t1;+----------+| count(*) |+----------+|    32768 |+----------+1 row in set (0.01 sec)
  • 这里我们两条经典的SQL:

  • SQL C:

  • select * from t1 where rank1 = 1 or rank2 = 2 or rank3 = 2;
  • SQL D:

  • select * from t1 where rank1 =100  and rank2 =100  and rank3 =100;
  • 表t1实际上在rank1,rank2,rank3三列上分别有一个二级索引。

    那我们来看SQL C的查询计划。

    显然,没有用到任何索引,扫描的行数为32034,cost为3243.65。

  • mysql》 explain  format=json select * from t1  where rank1 =1 or rank2 = 2 or rank3 = 2\G*************************** 1. row ***************************EXPLAIN: {  "query_block": {    "select_id": 1,    "cost_info": {      "query_cost": "3243.65"    },    "table": {      "table_name": "t1",      "access_type": "ALL",      "possible_keys": ,      "attached_condition": "((`ytt`.`t1`.`rank1` = 1) or (`ytt`.`t1`.`rank2` = 2) or (`ytt`.`t1`.`rank3` = 2))"    }  }}1 row in set, 1 warning (0.00 sec)
  • 我们加上hint给相同的查询,再次看看查询计划。

    这个时候用到了index_merge,union了三个列。扫描的行数为1103,cost为441.09,明显比之前的快了好几倍。

  • mysql》 explain  format=json select /*+ index_merge(t1) */ * from t1  where rank1 =1 or rank2 = 2 or rank3 = 2\G*************************** 1. row ***************************EXPLAIN: {  "query_block": {    "select_id": 1,    "cost_info": {      "query_cost": "441.09"    },    "table": {      "table_name": "t1",      "access_type": "index_merge",      "possible_keys": ,      "attached_condition": "((`ytt`.`t1`.`rank1` = 1) or (`ytt`.`t1`.`rank2` = 2) or (`ytt`.`t1`.`rank3` = 2))"    }  }}1 row in set, 1 warning (0.00 sec)
  • 我们再看下SQL D的计划:

  • 不加HINT,

  • mysql》 explain format=json select * from t1 where rank1 =100 and rank2 =100 and rank3 =100\G*************************** 1. row ***************************EXPLAIN: {  "query_block": {    "select_id": 1,    "cost_info": {      "query_cost": "534.34"    },    "table": {      "table_name": "t1",      "access_type": "ref",      "possible_keys": ,      "attached_condition": "((`ytt`.`t1`.`rank3` = 100) and (`ytt`.`t1`.`rank2` = 100))"    }  }}1 row in set, 1 warning (0.00 sec)
  • 加了HINT,

  • mysql》 explain format=json select /*+ index_merge(t1)*/ * from t1 where rank1 =100 and rank2 =100 and rank3 =100\G*************************** 1. row ***************************EXPLAIN: {  "query_block": {    "select_id": 1,    "cost_info": {      "query_cost": "5.23"    },    "table": {      "table_name": "t1",      "access_type": "index_merge",      "possible_keys": ,      "attached_condition": "((`ytt`.`t1`.`rank3` = 100) and (`ytt`.`t1`.`rank2` = 100) and (`ytt`.`t1`.`rank1` = 100))"    }  }}1 row in set, 1 warning (0.00 sec)
  • 对比下以上两个,加了HINT的比不加HINT的cost小了100倍。

    总结下,就是说表的cardinality值影响这张的查询计划,如果这个值没有正常更新的话,就需要手工加HINT了。相信MySQL未来的版本会带来更多的HINT。

MySQL性能优化的参数有哪些

set global 参数名=参数值;set @@global.参数名 :=参数值;会话参数set 参数名=参数值;set @@session.参数名 :=参数值;内存配置相关参数确定可以使用的内存的上限确定mysql每个连接使用的内存

mysql 参数调优(10)之 tmp_table_size 优化临时表

***隐藏网址***

tmp_table_size默认16M。tmp_table_size如果过小,存不下了就会存到磁盘上。对于group by会有性能影响。

下面的sql EXPLAIN 如下,出现了Using temporary。表示查询会利用临时表。

在默认tmp_table_size大小16M下执行:

查看临时表统计信息,Created_tmp_disk_tables 为0,Created_tmp_tables 为1表示上诉sql执行后生产了一张内存里的临时表。

将tmp_table_size 调从16M调整为16K

再次执行,查询时间从4变成了18秒

重新统计

再次查看status,这次有在磁盘上创建1个临时表。

设置为32M

Percona Server中的临时表信息会记录到慢查询日志 由于MySQL慢查询日志里没有使用临时表的信息,这就给我们诊断性能问题带来了一些不便,第三方的版本如Percona Server,在慢查询里可以有更详细的信息,将会记录临时表使用的情况,从而有助于我们诊断和调优。

mysql8中对临时表有较大的优化 临时表引擎使用innodb(default 磁盘)和temptable(default 内存)

mysql优化参数(如何设置合理的mysql的参数)

本文编辑:admin

更多文章:


pdf转cad免费转换器手机版(在手机上如何将PDF图纸转换成CAD图纸呢)

pdf转cad免费转换器手机版(在手机上如何将PDF图纸转换成CAD图纸呢)

大家好,今天小编来为大家解答以下的问题,关于pdf转cad免费转换器手机版,在手机上如何将PDF图纸转换成CAD图纸呢这个很多人还不知道,现在让我们一起来看看吧!本文目录在手机上如何将PDF图纸转换成CAD图纸呢在手机上如何将PDF图纸转换

2024年7月2日 09:52

coinegg(coingecko怎么注册)

coinegg(coingecko怎么注册)

本文目录coingecko怎么注册coinegg客服回复 充值usdt十天了,居然等待技术支持,原因是不足150都要等着!coingecko怎么注册操作方法:1、首先注册要登陆币蛋CoinEgg的网站,国内可以直接访问。2、进入币蛋Coin

2023年10月26日 06:40

桌面图标不见了怎么恢复(电脑桌面图标不见了,怎么恢复)

桌面图标不见了怎么恢复(电脑桌面图标不见了,怎么恢复)

大家好,关于桌面图标不见了怎么恢复很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于电脑桌面图标不见了,怎么恢复的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本

2024年8月23日 00:51

申万宏源证券官网(为什么我的股票申万宏源账户登录不进)

申万宏源证券官网(为什么我的股票申万宏源账户登录不进)

其实申万宏源证券官网的问题并不复杂,但是又很多的朋友都不太了解为什么我的股票申万宏源账户登录不进,因此呢,今天小编就来为大家分享申万宏源证券官网的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录为什么我的股票申万宏

2024年7月19日 01:40

ie11中文版官方下载(ie11浏览器电脑版怎么下载)

ie11中文版官方下载(ie11浏览器电脑版怎么下载)

其实ie11中文版官方下载的问题并不复杂,但是又很多的朋友都不太了解ie11浏览器电脑版怎么下载,因此呢,今天小编就来为大家分享ie11中文版官方下载的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录ie11浏览器

2024年7月8日 03:35

漫画英雄 终极联盟2(漫画英雄终极联盟2 应用程序无法正常启动0xc000000142怎么回事)

漫画英雄 终极联盟2(漫画英雄终极联盟2 应用程序无法正常启动0xc000000142怎么回事)

本文目录漫画英雄终极联盟2 应用程序无法正常启动0xc000000142怎么回事XBOX360版的漫画英雄终极联盟2,怎么人物都弄出来漫画英雄终极联盟2有多少人物可用漫画英雄:终极联盟2现在可以玩了吗可以双人玩吗知道的说下`谢谢`漫画英雄终

2024年2月26日 03:00

ps教程自学网(想自学PS 请推荐几个网站论坛)

ps教程自学网(想自学PS 请推荐几个网站论坛)

本篇文章给大家谈谈ps教程自学网,以及想自学PS 请推荐几个网站论坛对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录想自学PS 请推荐几个网站论坛想要自学Photoshop(ps)那个自学网好啊哪的教程好什么网站可以学习PS(

2024年8月10日 20:05

compliance(Compliance 简称)

compliance(Compliance 简称)

大家好,关于compliance很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Compliance 简称的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目

2024年9月2日 22:05

生化危机真的会发生吗在自然界僵尸病毒真的存在吗?世界真的有生化危机的僵尸吗

生化危机真的会发生吗在自然界僵尸病毒真的存在吗?世界真的有生化危机的僵尸吗

本文目录生化危机真的会发生吗在自然界僵尸病毒真的存在吗世界真的有生化危机的僵尸吗生化危机真的会发生吗在自然界僵尸病毒真的存在吗我们在很多科幻电影中都看到过生化危机的场面,一般都表现为僵尸病毒,被感染的人变成了嗜血杀戮,没有理性的僵尸。而且最

2023年6月30日 11:40

4399无需下载马上玩(不用下载4399在线游戏可以马上玩吗)

4399无需下载马上玩(不用下载4399在线游戏可以马上玩吗)

大家好,今天小编来为大家解答以下的问题,关于4399无需下载马上玩,不用下载4399在线游戏可以马上玩吗这个很多人还不知道,现在让我们一起来看看吧!本文目录不用下载4399在线游戏可以马上玩吗4399小游戏不用下载直接玩游戏可以吗为什么看不

2024年5月1日 12:22

ipad无法加入网络(苹果ipad连不上无线网怎么回事)

ipad无法加入网络(苹果ipad连不上无线网怎么回事)

本文目录苹果ipad连不上无线网怎么回事ipad无法加入网络怎么办ipad提示无法加入网络怎么回事为什么我的ipad连接家里的wifi显示无法加入网络ipad无法加入网络为什么ipad无法加入网络ipad今天突然连不上wifi,显示无法加入

2024年7月17日 16:51

求冒险岛2.0机械师1-200级挂机升级路线/ 加点、?冒险岛机械师技能点和升级路线

求冒险岛2.0机械师1-200级挂机升级路线/ 加点、?冒险岛机械师技能点和升级路线

大家好,今天小编来为大家解答以下的问题,关于雪狼加速器,求冒险岛2.0机械师1-200级挂机升级路线/ 加点、这个很多人还不知道,现在让我们一起来看看吧!本文目录求冒险岛2.0机械师1-200级挂机升级路线/ 加点、冒险岛机械师技能点和升级

2024年7月19日 17:35

玉林同城游戏大厅手机版(同城游戏大厅官方下载六副够级纸牌手机版)

玉林同城游戏大厅手机版(同城游戏大厅官方下载六副够级纸牌手机版)

大家好,如果您还对玉林同城游戏大厅手机版不太了解,没有关系,今天就由本站为大家分享玉林同城游戏大厅手机版的知识,包括同城游戏大厅官方下载六副够级纸牌手机版的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录同城游戏大厅

2024年4月10日 19:10

最新网游手游排行榜2022前十名(2022年最火的游戏前十名)

最新网游手游排行榜2022前十名(2022年最火的游戏前十名)

其实最新网游手游排行榜2022前十名的问题并不复杂,但是又很多的朋友都不太了解2022年最火的游戏前十名,因此呢,今天小编就来为大家分享最新网游手游排行榜2022前十名的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文

2024年10月6日 02:26

图片格式转换器在线(有哪些在线免费heic图片转换,HEIC格式如何转换成JPG格式)

图片格式转换器在线(有哪些在线免费heic图片转换,HEIC格式如何转换成JPG格式)

大家好,今天小编来为大家解答以下的问题,关于图片格式转换器在线,有哪些在线免费heic图片转换,HEIC格式如何转换成JPG格式这个很多人还不知道,现在让我们一起来看看吧!本文目录有哪些在线免费heic图片转换,HEIC格式如何转换成JPG

2024年7月12日 19:28

电脑ps软件下载教程(笔记本电脑怎样下载ps软件)

电脑ps软件下载教程(笔记本电脑怎样下载ps软件)

大家好,如果您还对电脑ps软件下载教程不太了解,没有关系,今天就由本站为大家分享电脑ps软件下载教程的知识,包括笔记本电脑怎样下载ps软件的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录笔记本电脑怎样下载ps软件p

2024年7月16日 05:15

qq2008(手机QQ2008有那些功能)

qq2008(手机QQ2008有那些功能)

本文目录手机QQ2008有那些功能QQ2008版本有什么功能QQ2008版本有什么功能呢QQ2008增加了那些功能QQ2008版本有什么业务啊QQ2008的各版本详情如何下载qq2008版本如何下载腾讯qq2008 beta1版手机QQ20

2024年6月30日 11:05

手机同花顺复盘功能?手机同花顺横屏设置两个指标

手机同花顺复盘功能?手机同花顺横屏设置两个指标

本文目录手机同花顺复盘功能手机同花顺横屏设置两个指标苹果手机同花顺左下角怎么显示板块同花顺盈亏分析在那里设置个股手机手机同花顺中怎样看连续3天的个股分时图同花顺苹果手机版好用吗同花顺的筹码参数在哪里调整同花顺手机版技术分析界面如何设置成三个

2024年7月7日 05:13

点击学生登录入口(批改网学生登录入口在哪里)

点击学生登录入口(批改网学生登录入口在哪里)

其实点击学生登录入口的问题并不复杂,但是又很多的朋友都不太了解批改网学生登录入口在哪里,因此呢,今天小编就来为大家分享点击学生登录入口的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录批改网学生登录入口在哪里国家开

2024年5月21日 13:25

万能钥匙破解最强版本(wifi破解器哪个最强最好)

万能钥匙破解最强版本(wifi破解器哪个最强最好)

这篇文章给大家聊聊关于万能钥匙破解最强版本,以及wifi破解器哪个最强最好对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录wifi破解器哪个最强最好哪种万能钥匙破WIFI密码最有效,最可能成功wiFi万能钥匙哪个版本破解的最多

2024年7月12日 16:01

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2342
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1736
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1168
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1164
标签列表

热门搜索