总结下MySQL存储引擎的区别和性能优化的一些方法
来源:互联网 发布:学英语的软件 编辑:程序博客网 时间:2024/05/29 16:31
MySQL 主要使用的存储引擎有MyISAM 和 InnoDB。
(一)、MyISAM
MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非配置MySQL默认使用另外一个引擎。
(二)、 InnoDB
InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB是为在处理巨大数据量时获得最大性能而设计的。它的CPU使用效率非常高。和MyISAM相比需要较多的内存和磁盘空间。
MySQL的性能优化的方法:数据库设计和查询优化,服务器端优化,存储引擎优化。
1、数据库设计:
A、对于数据量较大的表的设计往往是粗粒度的,也会冗余一些必要的字段,已达到尽量用最少的表、最弱的表关系去存储海量的数据。并且在设计表时,一般都会对主键建立聚集索引,含有大数据量的表更是要建立索引以提供查询性能。
B、添加必要的(冗余)字段:像“创建时间”、“修改时间”、“备注”、“操作用户IP”和一些用于其他需求(如统计)的字段等,在每张表中必须都要有,不是说只有系统中用到的数据才会存到数据库中,一些冗余字段是为了便于日后维护、分析、拓展而添加。
C、设计合理的表关联:若多张表之间的关系复杂,建议采用第三张映射表来关联维护两张表之间的关系,以降低表之间的直接耦合度。若多张表涉及到大数据量的问题,表结构尽量简单,关联也要尽可能避免。
D、选择合适的主键生成策略:主键生成策略大致可分:int自增长类型(identity、sequence)、手动增长类型(建立单独一张表来维护)、手动维护类型(如userId)、字符串类型(uuid、guid)。int型的优点是使用简单、效率高,但多表之间数据合并时就很容易出现问题,手动增长类型和字符串类型能很好解决多表数据合并的问题,但同样也都有缺点:前者的缺点是增加了一次数据库访问来获取主键,并且又多维护一张主键表,增加了复杂度;而后者是非常占用存储空间,且表关联查询的效率低下,索引的效率也不高,跟int类型正好相反。
2、查询优化:
使用索引:
使用EXPLAIN分析查询:
调整MySQL(和PHP搭配之最佳组合)的内部配置:
A、改变索引缓冲区长度(key_buffer)
B、改变表长(read_buffer_size)
C、设定打开表的数目的最大值(table_cache)
D、对缓长查询设定一个时间限制(long_query_time)【MySQL(和PHP搭配之最佳组合)带有“慢查询日志”,它会自动地记录所有的在一个特定的时间范围内尚未结束的查询。】
未完待续..................
0 0
- 总结下MySQL存储引擎的区别和性能优化的一些方法
- Mysql 存储引擎的区别和比较
- Mysql innodb存储引擎的性能优化一
- Mysql innodb存储引擎的性能优化二
- MySQL存储引擎MyISAM和InnoDB的区别及mysql优化
- MySQL存储引擎MyISAM和InnoDB的区别及mysql优化
- MySQL存储引擎MyISAM和InnoDB的区别及mysql优化
- MySQL存储引擎的区别
- MySQL监控性能的一些方法总结
- MySql 存储引擎的总结
- MySQL各存储引擎的区别及其启动方法
- MySQL各存储引擎的区别及其启动方法
- MySQL各存储引擎的区别及其启动方法
- MySQL各存储引擎的区别及其启动方法
- MySQL各存储引擎的区别及其启动方法
- mysql性能的检查和优化方法
- MYSQL的常用存储引擎MyISAM和InnoDB的区别
- Mysql 的存储引擎,myisam和innodb的区别
- 对于 PHP cookie 与 session 的理解
- 关于Nginx负载均衡和共享session的问题
- shell 求文件的交集
- jquery用户名动态验证(jquery+mysql)
- 再一次,为平凡人喝彩!
- 总结下MySQL存储引擎的区别和性能优化的一些方法
- MemCache在php中的一些应用和使用方法的小测试
- 基于PHP的curl的知识小结
- 浅谈PHP内存分配管理机制
- Python的一些学习笔记
- 关于mongodb Error: couldn\'t connect to server 127.0.0.1 shell/mongo.js:84
- CentOS Linux,Fedora Linux 安装MongoDB
- NSEnumerator 学习
- Ubuntu13.04下web Servier(Apache+MySQL+PHP)的搭建