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

高性能mysql 之 选择存储引擎(一)

阅读更多


  请尊重知识,请尊重原创 更多资料参考请见  http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1


1 没有特殊情况,应尽可能使用InnoDB存储引擎。
  原因:InnoDB 和 MYIsAM 是mysql 最常用、使用最普遍的存储引擎。其中InnoDB是最重要、最广泛的存储引擎。她
  被设计用来处理大量的短期事务。短期事务大部分情况下是正常提交的,很少有回滚的情况。InnoDB的性能和自动崩溃
  恢复特性使得她在非事务型存储的需求中也非常流行,除非有非常特别的原因需要使用其他的存储引擎,否则应该优先使用InnoDB
  引擎。
  oracle 投入了大量资源,使得InnoDB引擎的性能得到了质的飞跃,不仅在单核,现在已经扩展到24、32甚至更多核的
  系统中也表现良好。
 
  InnoDB 采用MVCC来支持高并发,并且实现了四个标准的隔离级别,其默认级别是可重复读。并且通过间隙锁防止幻读的出现。
 
  InnoDB 采用聚簇索引,对于主键查询有很高的性能。不过他的二级索引必须包含主键列,因此主键列应当尽可能的小。
 
  InnoDB 内部做了很多优化,包括从磁盘读取数据是采用的可预测性预读,能够自动在内存中创建hash索引以加速度操作的自适应哈希
  以及能够加速插入操作的插入缓冲区等。
 
  InnoDB 支持热备份。
 
  同样广泛使用的是 MyISAM存储引擎,MyISAM不支持事务,没有修复和崩溃恢复能力,需要手工操作
  MyISAM 对整张表加锁 而不是针对行,读取时会对需要读到的所有表加共享锁,写入时则对表加排他锁。
 
 
2 如何选择存储引擎
  一般情况下,InnoDB都是正确的选择,除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,
  否则都应该优先选择InnoDB引擎。当然,如果不需要用到InnoDB的特性,同时其他引擎的特性能够更好地满足需求,
  也可以考虑其他存储引擎。举个例子,如果不在乎可扩展能力和并发能力,也不在乎数据丢失问题,
  却对InnoDB的空间占用过多比较敏感,这种场合下选择MyISAM就比较合适。
 
  除非万不得已,否则不建议使用多种存储引擎,否则可能带来一系列复杂的问题以及一些潜在的bug和边界问题。
  存储引擎层和服务器层的交互已经比较复杂,更不用说混合多个存储引擎了。
 
  如果应用真的非常需要不同的存储引擎,请先开率以下几个因素
  1 事务
  2 备份
 
  不要轻易相信 MyISAM 比 InnoDB 快的经验之谈,在很多已知的场景中,InnoDB的速度都可以让MyISAM望尘莫及
  尤其是聚簇索引或者需要访问的数据都可以放入内存中的应用。
  MyISAM 引擎在一开始可能没有任何问题,但随着应用压力的上升,则可能迅速恶化,各种锁争用、崩溃后的数据丢失等问题都会随之而来。
 
  使用InnoDB 需要尽量避免select count(*) 此类的语句,  尤其是当数据规模不断增大的时候。
 
   mysql 单台服务器的数据量 一般保持在3-5T,10T以上就可能需要建立数据仓库,infobright 是mysql 数据仓库最成功的解决方案。也有一些大数据仓库不适合
   infobright ,却适合TokuDB.
 
  请尊重知识,请尊重原创 更多资料参考请见  http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1

 

分享到:
评论

相关推荐

    mysql内核 innodb存储引擎

    《MySQL技术内幕:InnoDB存储引擎》是国内目前唯一的一本关于InnoDB的著作,由资深MySQL专家亲自执笔...《MySQL技术内幕:InnoDB存储引擎》适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。

    高性能MySQL(第3版).part2

    1.5.3MySQL内建的其他存储引擎19 1.5.4第三方存储引擎22 1.5.5选择合适的引擎24 1.5.6转换表的引擎27 1.6MySQL时间线(Timeline)29 1.7MySQL的开发模式32 1.8总结33 第2章MySQL基准测试35 2.1为什么需要...

    高性能MySQL pdf 免费-part1

    《高性能MySQL》汇聚了著名MySQL 专家在实践中构建大型系统的多年宝贵经验,指导你如何使用MySQLTF发出快速可靠的系统。的第二版着眼于健壮性、安全性及数据完整性,涵盖了 MySQL性能的细微之处。  《高性能MYSQL》...

    Mysql必知必会+高性能MYsql等资源

    压缩包下面有四个文件:Mysql必知必会+MySQL技术内幕InnoDB存储引擎+MySQL性能调优+高性能Mysql第三版

    MySQL技术内幕InnoDB存储引擎.rar

    《高性能mysql(第3版)》是最具代表性的进阶书籍没有之一,它是 MySQL 领域的经典之作,内容涵盖 MySQL 架构和历史,性能分析,优化,复制、备份和恢复,高可用与高可扩展性。值得每一个后端工程师多次阅读,无论是...

    Mysql高性能存储.xmind

    mysql各个模块资料整理,包括基础、存储引擎、索引、mysql锁、事务、性能分析、优化、配置优化等模块的知识点

    《高性能MySQL》读书笔记.docx

    索引一般是放在磁盘中的,索引是存储引擎用于快速找到记录的一种数据结构。索引优化应该是对查询优化最有效的手段了。索引能够轻易将查询性能提高几个数量级,创建一个最优的索引经常需要重写查询。索引可以包含一个...

    mysql必读书籍-高性能mysql第三版.rar

    ◎ 学习MySQL新特性,包括...◎ 实现复制的改进、高可用和集群◎ 获得在云端运行MySQL的高性能 ◎ 优化高级查询特性,如全文索引 ◎ 从现代的多核CPU和固态硬盘中获益 ◎ 探索备份和恢复的策略,包括*的在线备份工具

    高性能MySQL(第3版)

    高性能mysql是一本提升mysql性能的一本书,里面讲了存储引擎,事物,并发控制锁粒度等高级知识

    一个MySQL存储引擎插件 它能够在 cantian 存储引擎的帮助下将MySQL 实例形成一个多读多写的透明集群

    Cantian connector (MySQL版)是由华为研发的一款MySQL存储引擎插件。它能够在无侵入的情况下将16个(或更多)MySQL实例组成一个多读多写的应用透明集群,并借助Cantian数据存储引擎提供更高的OLTP性能以及更强的高可...

    高性能MySQL part2 免费

    《高性能MySQL》汇聚了著名MySQL 专家在实践中构建大型系统的多年宝贵经验,指导你如何使用MySQLTF发出快速可靠的系统。本书的第二版着眼于健壮性、安全性及数据完整性,涵盖了 MySQL性能的细微之处。  《高性能...

    高性能MYSQL1

    高性能MySQL读书笔记MySQL概述于架构 1.1MySQL最重要、最与众不同的特性是它的存储引擎架构1.2。

    高性能mysql 第三版 pdf 分卷2

    《高性能MySQL》你将学到与mysql数据库模式、索引和查询设计相关的所有高级技巧,通过使用这些技巧,你将能够对mysql数据库服务器,操作系统和硬件进行润优以发挥它们的最大潜力。 第三版中更新了mysql数据库和...

    高性能mysql技术分享

    mysql性能优化,并发控制,MySql的存储引擎,数据类型优化

    高性能mysql 第三版 pdf 分卷1

    《高性能MySQL》你将学到与mysql数据库模式、索引和查询设计相关的所有高级技巧,通过使用这些技巧,你将能够对mysql数据库服务器,操作系统和硬件进行润优以发挥它们的最大潜力。 第三版中更新了mysql数据库和...

    王剑英:SEQDB—高性能KV型MySQL存储引擎

    百度王剑英从细节上分享了百度对于SEQDB的设计细节,包括应用的访问模型、索引结构、数据查找、垃圾回收、元信息位图和BLOCK管理等实现。

    MySQL各存储引擎区别与特点

    NDB存储引擎 介绍 2003年,MYSQL AB公司从Sony Ericsson 公司收购了NDB集群引擎 结构 ...关于NDB存储引擎,有一个问题值得注意,那就是NDB存储引擎的连接操作(JOIN)是在MySQL数据库层完成的,而不是在

    Mysql innodb 存储引擎全揭秘

    同时使用一种 -- next-key locking 的锁策略来避免幻读现象的产生,还提供了插入缓冲(insert buffer) 二次写(double write) 自适应哈希索引,预读(read ahead)等高性能和高可用的功能。对于表中的数据innodb...

    高性能Mysql演示文稿.pptx

    Mysql干货,存储引擎,索引PPT,mysql预处理sql,Schema数据类型优化,Mysql干货,存储引擎,索引PPT,mysql预处理sql,Schema数据类型优化

Global site tag (gtag.js) - Google Analytics