千家信息网

mysql优化的小提示有哪些

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这期内容当中小编将会给大家带来有关mysql优化的小提示有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。SQL性能提示特定查询性能提示(有关索引的提示,请参见数
千家信息网最后更新 2025年01月22日mysql优化的小提示有哪些

这期内容当中小编将会给大家带来有关mysql优化的小提示有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

SQL性能提示

特定查询性能提示(有关索引的提示,请参见数据库设计提示):

1.使用EXPLAIN分析查询执行计划

使用解释查看查询执行的计划

2.使用慢速查询日志(始终打开!)

使用慢速查询日志(慢查询日志)

3.当您已经或可能使用分组方式时,不要使用DISTINCT

当你能或正在使用分组时不要使用 不同的

4.插入性能

插入性能

1.批量插入和替换

使用批量插入

2.使用加载数据而不是插入

用加载数据代替插入

5.限制m,n可能没有听起来那么快

极限m,n可能并没有听起来那么的快

6.如果您有>~2K条记录,请不要使用ORDER BY RAND()

如果你的记录大于2000条,请不要使用 兰德订单()

7.选择频繁更新的数据或大型数据集时,请使用SQL\u NO\u缓存

当你在查询经常更新和大数据集的数据时,使用SQL\u无\u缓存

8.避免在LIKE查询开始时使用通配符

避免在喜欢查询的变量的头字符中使用通配符

9.避免相关子查询和in select和where子句(尽量避免in)

避免相关子查询..

10.无计算比较--隔离索引列

不使用计算后的比较------可使索引列仍然有效

11.按顺序和限制使用等式和覆盖索引进行最佳工作

订购人和 限度在有索引和等于条件时效率更高

12.将文本/blob与元数据分开,如果不需要,不要将文本/blob放入结果中

把文本/斑点这两种数据分开,如果不需要的话,不要包含在结果中

13.派生表(FROM子句中的子查询)可用于检索BLOB而无需对其进行排序。(如果第一部分找到ID并使用then获取其余ID,则自连接可加快查询速度)

14.ALTER TABLE…ORDER BY可以按时间顺序对数据进行排序,并按不同的字段对其重新排序--这可以使该字段上的查询运行得更快(可能这会在索引中进行?)

15.知道何时拆分复杂查询并连接较小的查询

知道什么时候分割复杂查询和合并简单查询

16.如果可以,一次删除少量

17.使类似查询保持一致,以便使用缓存

把相似的查询改为一摸一样的查询,这样可以使用隐藏物

18.具有良好的SQL查询标准

19.不要使用不推荐的功能

不要使用未得认可得特性

20.将多个索引字段(<5.0)转换或打开为UNION可能会加快速度(有限制),在5.0之后,索引合并应该会加快速度。

在多索引列,把或改为协会可使速度加快(在5版本以下),

21.不要在Innodb表上每次搜索都使用COUNT*,可以重复几次和/或汇总表,或者如果需要对行总数使用COUNT*,请使用SQL_CALC_FOUND_rows并选择Find_rows()

不要在每一个搜索中使用计数*(在Innodb表中),可以使用SQL\u计算\u找到\u行和 选择已找到的行()代替他们

22.在重复密钥更新时使用INSERT…(插入忽略)以避免必须选择

23.使用groupwise maximum而不是子查询

扩展性能提示:

1.使用基准测试

2.隔离工作负载-不要让管理工作干扰客户的性能。(即备份)

3.调试糟透了,测试石头!

4.随着数据的增长,索引可能会发生变化(基数和选择性会发生变化)。结构可能会发生变化。使您的模式与代码一样模块化。使您的代码能够扩展。计划并接受变化,并让开发人员也这样做。

网络性能提示:

1.通过只获取您需要的内容来最小化流量。

通过查询你需要得数据来减少通信流量

1.分页/分块数据检索限制

2.不要使用选择*

不要使用 选择*

3.如果长时间的查询效率更高,那么要小心大量小的快速查询

2.在适当情况下使用multi_查询以减少往返

操作系统性能提示:

1.使用适当的数据分区

1.对于集群。在需要集群之前,就开始考虑集群

2.保持数据库主机尽可能干净。您真的需要该服务器上的窗口系统吗?

3.利用操作系统的优势

4.缩减cron脚本

5.创建一个测试环境

6.源代码管理架构和配置文件

7.对于LVM innodb备份,请还原到不同的MySQL实例,以便innodb可以前滚

8.适当划分

9.在拥有真实数据时对数据库进行分区--在拥有真实数据之前,不要假设您知道自己的数据集

MySQL服务器总体提示:

1.innodb_flush_commit=0可以帮助从机延迟

2.优化数据类型,使用一致的数据类型。使用过程分析()帮助确定满足您需要的最小数据类型。

3.使用乐观锁,而不是悲观锁。尝试使用共享锁,而不是独占锁。共享模式与更新模式

4.如果可以,压缩文本/水滴

5.压缩静态数据

6.不要经常备份静态数据

7.如果合适,启用并增加查询和缓冲区缓存

8.配置参数--http://docs.cellblue.nl/2007/03/17/easy-mysql-performance-tweaks/ 这是一个很好的参考

9.配置变量和提示:

1.使用提供的配置文件之一

2.密钥缓冲区、unix缓存(保留一些RAM空闲)、每个连接变量、innodb内存变量

3.注意全局变量与每个连接变量

4.检查显示状态和显示变量(5.0及以上版本中的全局|会话)

5.注意交换,特别是与Linux的交换,"交换"(对于innodb数据文件,绕过操作系统文件缓存,如果可能,innodb_flush_method=O_DIRECT(这也是操作系统特有的))

6.整理表碎片,重建索引,进行表维护

7.如果您使用innodb_flush

上述就是小编为大家分享的mysql优化的小提示有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

查询 数据 提示 索引 性能 变量 选择 缓存 系统 操作系统 文件 文本 速度 分析 变化 更新 配置 限制 不同 适当 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 《网络安全知识》征文 中华石刻数据库 图书馆 虚拟机ftp服务器如何测试 共享单车的网络技术 广东口碑好的软件开发有哪些 北邮工业网络技术基础作业 北京小牛速点网络技术 工业控制网络技术研究的意义 计算机网络技术课程答案网课 学校饭堂智慧餐饮软件开发 豆豆计算机网络技术服务中心 access多数据库连 江苏财务软件开发 华为数通软件开发部怎么样 阿里云我的世界服务器 学编程软件开发好吗 谷歌play服务器 北京甘仆软件开发有限公司 电脑网络安全黑板报花边框 四川企业软件开发服务 中国网络安全性是什么程度 企业网络安全应急流程图 kylin是数据库吗 招远微信小程序软件开发解决方案 网络安全法六十七条 100万玩游戏需要多大服务器 山西网络技术服务什么价格 零基础学软件开发招生要求 维护微信的服务器 江阴进口软件开发资费
0