简单总结了一下
1使用索引但是不要滥用索引
2使用持续的连接(连接池)
3缓存数据库使用,减少数据库的负载
4不要使用select * from table_name而是查询需要的列
5读写分离(多个数据源,读写业务分离在不同数据源)
6横向扩展,分布式数据库(可以根据id存储数据在不同的数据库上,但是要考虑备份)
7八十二十原则,把精力放在瓶颈的那个点
8优化mysql语句,多用show processlist,show status跟踪数据库的瓶颈sql.
9延迟加载关联表
10mysql配置更大的缓存见下:命令是mysqld --verbose --help
MySQL高速缓存(所有线程共享,一次性分配)
* 键码缓存:key_buffer_size,默认8M。
* 表缓存:table_cache,默认64。
* 线程缓存:thread_cache_size,默认0。
* 主机名缓存:可在编译时修改,默认128。
* 内存映射表:目前仅用于压缩表。
当调节MySQL服务器时,要配置的两个最重要的变量是key_buffer_size和table_cache。在试图更改其它变量前你应先确信已经适当地配置了这些变量。
下面的例子显示了部分典型的不同的运行时配置的变量值。
· 如果至少有256MB内存和许多表,想要在中等数量的客户时获得最大性能,应使用:
· shell> mysqld_safe --key_buffer_size=64M --table_cache=256 \
· --sort_buffer_size=4M --read_buffer_size=1M &
· 如果只有128MB内存和少量表,但仍然要进行大量的排序,可以使用:
· shell> mysqld_safe --key_buffer_size=16M --sort_buffer_size=1M
如果有许多并行连接,交换问题会发生,除非mysqld已经配置成为每个连接分配很少的内存。如果有足够的内存用于所有连接,mysqld会执行得更好。
· 对于少量内存和大量连接,应使用:
· shell> mysqld_safe --key_buffer_size=512K --sort_buffer_size=100K \
· --read_buffer_size=100K &
或甚至为:
shell> mysqld_safe --key_buffer_size=512K --sort_buffer_size=16K \
--table_cache=32 --read_buffer_size=8K \
--net_buffer_length=1K &
如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。
如果已经安装了MySQL,support-files目录包含一些不同的my.cnf示例文件:my-huge.cnf、my-大.cnf、my-medium.cnf和my-small.cnf。可以使用这些文件来优化系统。
请注意如果在命令行中为mysqld或mysqld_safe指定一个选项,它只在该次服务器调用中保持有效。要想每次服务器运行时使用该选项,将它放在选项文件中。
要想看参数更改的效果,应执行:
shell> mysqld --key_buffer_size=32M --verbose ---help
变量值列于输出的最后。确保--verbose和---help选项在最后。否则,在命令行中列于它们后面的选项的效果不会反映到输出中。
分享到:
相关推荐
mysql优化10原则:使用JOIN时,应该用小结果集驱动大结果集,同时把复杂的JOIN查询拆分成多个Query
### MySQL语句优化的核心原则与实践 #### 一、索引的重要性及合理设计 1. **索引的作用**:索引能够显著加快数据检索的速度,这是因为它们提供了快速访问数据库表行的方法,类似于书籍的目录。 2. **非群集索引与...
这份"MySQL官方文档优化原则部分"的翻译涵盖了多个关键领域,帮助我们深入理解如何提高MySQL数据库的运行效率。 首先,执行计划是优化查询的关键。在MySQL中,可以使用`EXPLAIN`关键字来查看SQL查询的执行计划,这...
`Mysql优化-20151007.doc`可能包含了关于数据库设计原则的信息,比如范式理论的应用,适当的数据类型选择,以及减少冗余数据,这些都能防止数据不一致性和提高存储效率。 4. **内存配置**:MySQL服务器的内存管理对...
MySQL 优化方法主要涵盖...总之,MySQL优化涉及多个层面,包括合理选择存储引擎、优化字段类型、建立合适索引以及编写高效的SQL语句。每个环节都对数据库性能有着直接影响,需要根据实际业务需求进行综合考虑和调整。
##### 1.2 MySQL优化的基本原则 - **索引优化**:合理建立索引可以极大提高查询效率。 - **SQL语句优化**:简化查询逻辑,避免全表扫描等低效操作。 - **表结构设计**:良好的表结构能够有效减少数据冗余,提高存储...
详细记录了mysql优化相关问题的思维导图,包含执行流程、表结构对性能的影响、索引、事务、锁、sql优化原则、JOIN的原理、执行计划与执行明细等内容,部分举例说明。 适合对mysql有一定了解的人群。 详细记录了mysql...
本文将深入探讨两个关键的优化原则:小表驱动大表和ORDER BY排序优化。 首先,我们来看小表驱动大表的原则。在SQL查询中,这个原则意味着应该让小的数据集先被处理,然后用其结果去驱动大的数据集。这是因为数据库...
本书的内容涵盖了查询优化的基本原则和最佳实践,例如索引的设计和使用,以及查询缓存的配置等。此外,本书还详细描述了高可用性架构的设计与实现,包括MySQL复制的原理和配置方法。 通过阅读本书,读者可以系统地...
MySQL性能优化是一个涵盖广泛的主题,涉及数据库设计、SQL查询优化、索引策略等多个方面。以下是对标题和描述中提到的一些关键知识点的详细说明: 1. **表的优化**: - **定长与变长字段的分离**:将定长字段(如...
### MySQL优化之SQL语句与索引优化 #### 数据库设计合理性 在MySQL数据库的优化过程中,合理设计数据库(表)至关重要。一个合理的数据库设计能够有效地提高查询性能、减少数据冗余并确保数据完整性。 - **3NF**...
MySQL数据库设计与优化是数据库管理中的重要环节,它关乎到系统的性能、稳定性和可扩展性。本讲座由叶金荣分享,主要涵盖了多个关键方面,包括规范、基础规范、命名规范、库表规范、字段规范、索引规范以及开发环境...
MySQL 数据库开发、优化与管理维护 本文档旨在深入浅出 MySQL 数据库开发、优化与管理维护的知识点,涵盖了 MySQL 数据库开发的基本概念、优化技巧和管理维护方法。 数据库开发篇 在本篇中,我们将学习 MySQL ...
10. **适当调整MySQL配置**:如增大innodb_buffer_pool_size,缓存更多数据和索引,提高读取效率。 11. **延迟写入策略**:使用innodb_flush_log_at_trx_commit=2,减少每次事务提交时的磁盘I/O。 12. **使用分区...
在IT行业中,PHP和MySQL是两个非常重要的技术组件,它们共同构建了大量网站和Web应用程序的基础。...阅读《mysql优化.chm》和《效率与优化.pdf》这两份文档,将进一步细化和扩展这些知识,帮助你更全面地掌握这个主题。
MySQL性能优化是一个综合性的工作,需要从多个角度进行考虑和实施。通过对状态报告的监控、合理使用索引、优化锁定机制以及采取其他各种优化手段,可以显著提高数据库的性能和稳定性。在实际操作中,还需要结合具体...
优化原则在于减少系统瓶颈,降低资源占用,提高系统的响应速度。 在MySQL中,我们可以通过`SHOW STATUS`语句来查看数据库的性能参数,如`Slow_queries`,它是记录执行时间超过预设阈值的SQL查询次数,这对于识别和...
### MySQL优化文档知识点详解 #### 一、查询条件应按照表中索引查询 在MySQL数据库操作中,索引的设计与使用对于查询性能至关重要。合理的索引能够显著提高查询速度,减少I/O操作次数,从而降低数据库服务器负载。...