这里罗列了一些基本的 MySQL 性能提示,但不是放之四海而皆准,需要根据实际的应用情况而决定。
【设计】
引用
1.使用标准化设计(数据库三范式),记住表的联合查询(join)性能不会差
选择合适的字符集,虽然UTF16无所不能,但需要两倍的存储;
2.UTF8适合各种字符,但比latin1慢,尽可能选用latin1(此条不适合中文)
3.utf8_general_ci 略快于 utf8_unicode.ci
4.字段尽可能使用 NOT NULL
5.为所有的 SELECT 查询创建索引
索引提升查询的性能,但降低插入数据的性能,因此不要做无用的和重复的索引
【查询】
引用
尽可能使用最小的数据类型,例如一些状态字段用 tinyint 而不是 int
尽可能避免 IN (…) 查询
尽可能避免 ORDER BY RAND() 查询
当你需要在一些唯一索引的表中插入数据前使用 SELECT 进行判断记录是否存在时,请使用 INSERT … ON DUPLICATE KEY UPDATE … 方法来替代.
如果你的应用需要经常写数据库,那么请使用 InnoDB 引擎,否则用 MyISAM,这里有一个比较的文章。
不要在大表中使用 LIMIT xxxx1, xxxx2 ,特别是当 xxxx1 参数值特别大的时候,可尽量通过 WHERE 来限制结果集,然后使用 LIMIT xxxx2 方式.
不使用已被废弃的方法
避免在 LIKE 查询中使用 % 前缀,例如 LIKE '%oschina' ,这将使索引无效
如果有大量的数据需要一次性插入,最好对这些 INSERT 语句进行合并以便批量插入
Prefer GROUP BY over DISTINCT.
经常浏览系统的慢查询日志 Slow Query Log.
避免在 WHERE … , LIMIT … , ORDER BY … 等语句中使用表达式和函数计算公式等。
使用 EXPLAIN … 对你的 SQL 查询进行分析,以便确认是否最优查询
不要使用 SELECT * … ,只 SELECT 你想要的字段(这点挺麻烦,在 ORM 世界里更是这样)
尽可能合并小查询为一个大查询
【存储引擎】
引用
了解各种存储引擎的特点,并根据实际情况进行选择,选择之前在测试平台上做充分测试
Archive old data such as logs in ARCHIVE tables or MERGE tables.
BLACKHOLE 引擎非常快速,特别适用一些繁忙的事务,例如日志
【配置my.cnf】
引用
提供默认的主键缓冲区大小: key_buffer = 128M
提高默认的打开表的缓存个数: table_cache = 128
提供默认的排序缓冲区大小:
sort_buffer_size = 32M
myisam_sort_buffer_size = 32M
如果不做复制的话,禁用二进制日志:# log-bin=mysql-bin
分享到:
相关推荐
6.6查询优化器的提示(hint)232 6.7优化特定类型的查询236 6.7.1优化COUNT()查询236 6.7.2优化关联查询239 6.7.3优化子查询239 6.7.4优化GROUPBY和DISTINCT239 6.7.5优化LIMIT分页241 6.7.6优化SQL_CALC_...
MySQL性能的另一个关键因素是服务器配置。通过调整***f或my.ini配置文件中的参数,可以优化内存分配、提高并发处理能力、调整缓存大小等。例如,合理配置innodb_buffer_pool_size、thread_cache_size和max_...
10. **监控与调优**:学习使用各种工具(如Percona Toolkit、MySQL Enterprise Monitor)监控MySQL性能,并进行系统调优。 11. **最新特性**:介绍MySQL的新版本特性,如InnoDB Cluster、JSON支持、窗口函数等,...
MySQL的InnoDB存储引擎在处理大量数据和高并发事务时,其性能调优至关重要。以下是一些关于如何配置和优化InnoDB性能的关键提示: 1. **监控InnoDB状态**: 使用`SHOW INNODB STATUS`命令可以查看InnoDB引擎的状态...
MySQL教程(命令提示符形式) 在信息技术领域,数据库管理是不可或缺的一部分,而MySQL作为一款流行的开源关系型数据库管理系统,被广泛应用于网站开发、数据分析和存储关键业务数据。本教程将聚焦于MySQL的基础...
### Oracle官方MySQL性能调优优化文档 #### 一、引言 在当今数据密集型的应用环境中,数据库性能的优化显得尤为重要。Oracle作为全球领先的企业级软件供应商,为MySQL提供了详尽的性能调优指南。本篇文章将根据提供...
- slow_queries:每秒慢查询的数量,提示可能存在的性能瓶颈。 - binlog_disk_usage:二进制日志文件在磁盘上的占用情况,过大可能影响写入性能。 通过这些指标,我们可以分析MySQL服务器的性能瓶颈,及时进行调优...
MySQL 5.5是MySQL的一个重大版本更新,于2010年发布,引入了诸多性能优化和新特性。其中,InnoDB存储引擎得到显著增强,支持更多的并发连接,提高了查询速度,并引入了压缩表功能以节省磁盘空间。 2. **安装步骤**...
在 Windows 平台下,用户可以从官方网站下载 MySQL 的安装包,然后按照提示安装。在 Linux 平台下,用户可以使用包管理器来安装 MySQL。 在安装完成后,用户需要配置 MySQL,以便能够正常使用。配置 MySQL 主要包括...
MySQL数据库在运行过程中可能会遇到“Too many connections”的错误提示,这意味着服务器上的MySQL实例达到了其最大允许的并发连接数。此问题通常由以下两种情况引起: 1. **并发连接过多**:大量的应用程序或用户...
5. **性能优化**:通过调整SQL语句、索引优化、配置参数调整等方式,可以提高MySQL的性能。 总的来说,MySQL 8.0.31为Windows用户提供了稳定且高效的数据库服务。了解并熟练掌握MySQL的安装、配置和管理,对于任何...
1. **增强的性能**:MySQL 8.0在查询处理、索引和事务处理方面进行了优化,提供了更快的数据检索速度。 2. **JSON字段支持**:增加了对JSON数据类型的原生支持,使得NoSQL和SQL数据存储更加灵活。 3. **窗口函数**:...
1. **验证安装**:打开命令行,输入`mysql -u root -p`,然后输入密码,如果能进入MySQL提示符,表示安装成功。 2. **安全设置**:首次安装后,建议运行`mysql_secure_installation`脚本,进行安全设置,如删除匿名...
- MySQL性能优化技巧,如何提升查询速度和数据库性能。 - 开发过程中的实战案例,分享优秀实践和设计模式。 通过这个系列的学习,你将能够熟练掌握MySQL的使用,理解数据库原理,以及在实际开发中运用MySQL进行...
6. **性能分析**:内置的性能顾问模块可以分析查询性能,提供改进建议,帮助优化数据库性能。 7. **安全特性**:支持SSL连接,确保数据传输的安全性;此外,它还提供了身份验证插件管理,便于配置和管理用户权限。 ...