`
kakaluyi
  • 浏览: 444230 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

mysql 的优化10个原则

阅读更多

简单总结了一下

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_sizetable_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 BYORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。

如果已经安装了MySQLsupport-files目录包含一些不同的my.cnf示例文件:my-huge.cnfmy-.cnfmy-medium.cnfmy-small.cnf。可以使用这些文件来优化系统。

请注意如果在命令行中为mysqldmysqld_safe指定一个选项,它只在该次服务器调用中保持有效。要想每次服务器运行时使用该选项,将它放在选项文件中。

要想看参数更改的效果,应执行:

shell> mysqld --key_buffer_size=32M --verbose ---help

变量值列于输出的最后。确保--verbose---help选项在最后。否则,在命令行中列于它们后面的选项的效果不会反映到输出中。

 

1
0
分享到:
评论

相关推荐

    mysql优化10原则

    mysql优化10原则:使用JOIN时,应该用小结果集驱动大结果集,同时把复杂的JOIN查询拆分成多个Query

    MySQL语句优化的原则

    ### MySQL语句优化的核心原则与实践 #### 一、索引的重要性及合理设计 1. **索引的作用**:索引能够显著加快数据检索的速度,这是因为它们提供了快速访问数据库表行的方法,类似于书籍的目录。 2. **非群集索引与...

    MySQL官方文档优化原则部分

    这份"MySQL官方文档优化原则部分"的翻译涵盖了多个关键领域,帮助我们深入理解如何提高MySQL数据库的运行效率。 首先,执行计划是优化查询的关键。在MySQL中,可以使用`EXPLAIN`关键字来查看SQL查询的执行计划,这...

    php之mysql优化

    `Mysql优化-20151007.doc`可能包含了关于数据库设计原则的信息,比如范式理论的应用,适当的数据类型选择,以及减少冗余数据,这些都能防止数据不一致性和提高存储效率。 4. **内存配置**:MySQL服务器的内存管理对...

    Mysql优化方法介绍.ppt

    MySQL 优化方法主要涵盖...总之,MySQL优化涉及多个层面,包括合理选择存储引擎、优化字段类型、建立合适索引以及编写高效的SQL语句。每个环节都对数据库性能有着直接影响,需要根据实际业务需求进行综合考虑和调整。

    MySQL优化 实战视频课程

    ##### 1.2 MySQL优化的基本原则 - **索引优化**:合理建立索引可以极大提高查询效率。 - **SQL语句优化**:简化查询逻辑,避免全表扫描等低效操作。 - **表结构设计**:良好的表结构能够有效减少数据冗余,提高存储...

    mysql优化教程xmind思维导图

    详细记录了mysql优化相关问题的思维导图,包含执行流程、表结构对性能的影响、索引、事务、锁、sql优化原则、JOIN的原理、执行计划与执行明细等内容,部分举例说明。 适合对mysql有一定了解的人群。 详细记录了mysql...

    【MySQL】MySQL优化原则

    本文将深入探讨两个关键的优化原则:小表驱动大表和ORDER BY排序优化。 首先,我们来看小表驱动大表的原则。在SQL查询中,这个原则意味着应该让小的数据集先被处理,然后用其结果去驱动大的数据集。这是因为数据库...

    MySQL性能优化和高可用架构实践.pptx

    本书的内容涵盖了查询优化的基本原则和最佳实践,例如索引的设计和使用,以及查询缓存的配置等。此外,本书还详细描述了高可用性架构的设计与实现,包括MySQL复制的原理和配置方法。 通过阅读本书,读者可以系统地...

    mysql性能优化总结

    MySQL性能优化是一个涵盖广泛的主题,涉及数据库设计、SQL查询优化、索引策略等多个方面。以下是对标题和描述中提到的一些关键知识点的详细说明: 1. **表的优化**: - **定长与变长字段的分离**:将定长字段(如...

    mysql优化sql语句的优化(索引,常用小技巧.)

    ### MySQL优化之SQL语句与索引优化 #### 数据库设计合理性 在MySQL数据库的优化过程中,合理设计数据库(表)至关重要。一个合理的数据库设计能够有效地提高查询性能、减少数据冗余并确保数据完整性。 - **3NF**...

    MySQL数据库设计、优化.pptx

    MySQL数据库设计与优化是数据库管理中的重要环节,它关乎到系统的性能、稳定性和可扩展性。本讲座由叶金荣分享,主要涵盖了多个关键方面,包括规范、基础规范、命名规范、库表规范、字段规范、索引规范以及开发环境...

    深入浅出MySQL数据库开发、优化与管理维护.doc

    MySQL 数据库开发、优化与管理维护 本文档旨在深入浅出 MySQL 数据库开发、优化与管理维护的知识点,涵盖了 MySQL 数据库开发的基本概念、优化技巧和管理维护方法。 数据库开发篇 在本篇中,我们将学习 MySQL ...

    MySQL性能优化的最佳21条经验

    10. **适当调整MySQL配置**:如增大innodb_buffer_pool_size,缓存更多数据和索引,提高读取效率。 11. **延迟写入策略**:使用innodb_flush_log_at_trx_commit=2,减少每次事务提交时的磁盘I/O。 12. **使用分区...

    php+mysql效率与优化

    在IT行业中,PHP和MySQL是两个非常重要的技术组件,它们共同构建了大量网站和Web应用程序的基础。...阅读《mysql优化.chm》和《效率与优化.pdf》这两份文档,将进一步细化和扩展这些知识,帮助你更全面地掌握这个主题。

    mysql数据库性能优化

    MySQL性能优化是一个综合性的工作,需要从多个角度进行考虑和实施。通过对状态报告的监控、合理使用索引、优化锁定机制以及采取其他各种优化手段,可以显著提高数据库的性能和稳定性。在实际操作中,还需要结合具体...

    高并发基础之-MySql性能优化.pdf

    优化原则在于减少系统瓶颈,降低资源占用,提高系统的响应速度。 在MySQL中,我们可以通过`SHOW STATUS`语句来查看数据库的性能参数,如`Slow_queries`,它是记录执行时间超过预设阈值的SQL查询次数,这对于识别和...

    mysql优化文档

    ### MySQL优化文档知识点详解 #### 一、查询条件应按照表中索引查询 在MySQL数据库操作中,索引的设计与使用对于查询性能至关重要。合理的索引能够显著提高查询速度,减少I/O操作次数,从而降低数据库服务器负载。...

Global site tag (gtag.js) - Google Analytics