mysql优化的小提示有哪些

52次阅读
没有评论

共计 2316 个字符,预计需要花费 6 分钟才能阅读完成。

这期内容当中丸趣 TV 小编将会给大家带来有关 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

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计2316字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)