存储引擎

TokuDB · 引擎特性 · HybridDB for MySQL高压缩引擎TokuDB 揭秘

半腔热情 提交于 2019-11-28 21:48:31
原文出处: 阿里云RDS-数据库内核组 HybridDB for MySQL(原名petadata)是面向在线事务(OLTP)和在线分析(OLAP)混合场景的关系型数据库。HybridDB采用一份数据存储来进行OLTP和OLAP处理,解决了以往需要把一份数据多次复制来分别进行业务交易和数据分析的问题,极大地降低了数据存储的成本,缩短了数据分析的延迟,使得实时分析决策称为可能。 HybridDB for MySQL兼容MySQL的语法及函数,并且增加了对Oracle常用分析函数的支持,100%完全兼容TPC-H和TPC-DS测试标准,从而降低了用户的开发、迁移和维护成本。 TokuDB是TokuTek公司(已被 Percona收购)研发的新引擎,支持事务/MVCC,有着出色的数据压缩功能,支持异步写入数据功能。 TokuDB索引结构采用fractal tree数据结构,是buffer tree的变种,写入性能优异,适合写多读少的场景。除此之外,TokuDB还支持在线加减字段,在线创建索引,锁表时间很短。 Percona Server和Mariadb支持TokuDB作为大数据场景下的引擎,目前官方MySQL还不支持TokuDB。ApsaraDB for MySQL从2015年4月开始支持TokuDB,在大数据或者高并发写入场景下推荐使用。 TokuDB优势 数据压缩

MySQL重要知识点/面试题总结

≯℡__Kan透↙ 提交于 2019-11-28 20:05:37
这篇文章是作者利用几天时间对MySQL知识点总结完善后的产物,可以用来回顾MySQL基础知识以及备战MySQL常见面试问题。 什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是3306。 事务相关 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。 事物的四大特性(ACID)介绍一下? 原子性 : 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性 : 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性 : 并发访问数据库时,一个用户的事务不被其他事务所干扰

存储引擎

时光怂恿深爱的人放手 提交于 2019-11-28 19:44:34
存储引擎 存储数据的的方式 # 存储引擎 -- 存储数据的方式 # 一张表 # 数据 # 表的结构 # 索引(查询的时候使用的一个目录结构) # 面试题 # 你了解mysql的存储引擎么? # 你的项目用了什么存储引擎,为什么? # innodb # 多个用户操作的过程中对同一张表的数据同时做修改 # innodb支持行级锁,所以我们使用了这个存储引擎 # 为了适应程序未来的扩展性,扩展新功能的时候可能会用到...,涉及到要维护数据的完整性 # 项目中有一两张xx xx表,之间的外键关系是什么,一张表的修改或者删除比较频繁,怕出错所以做了外键约束 数据的存储方式 -- 存储引擎engines innodb常用 myisam memory 使用不同的存储引擎,数据是以不同的方式存储的 show engines; 查看存储引擎 mysql支持哪些存储引擎? mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 最常见 Innodb Myisam Memory Innodb存储引擎 创建表的时候 # Innodb存储引擎(印欧db) mysql5.6之后的默认的存储引擎 #

mysql索引

会有一股神秘感。 提交于 2019-11-28 18:22:06
/* 所有MySQL列类型可以被索引。根据存储引擎定义每个表的最大索引数和最大索引长度。 所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎有更高的限制。 索引的存储类型目前只有两种(btree和hash),具体和存储引擎模式相关: MyISAM btree InnoDB btree MEMORY/Heap hash,btree 默认情况MEMORY/Heap存储引擎使用hash索引 MySQL的btree索引和hash索引的区别 hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像btree(B-Tree)索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 hash 索引的查询效率要远高于 btree(B-Tree) 索引。 虽然 hash 索引效率高,但是 hash 索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。 (1)hash 索引仅仅能满足=,<=>,IN,IS NULL或者IS NOT NULL查询,不能使用范围查询。 由于 hash 索引比较的是进行 hash 运算之后的 hash 值,所以它只能用于等值的过滤,不能用于基于范围的过滤,因为经过相应的 hash 算法处理之后的 hash 值的大小关系,并不能保证和hash运算前完全一样。 (2)hash 索引无法被用来避免数据的排序操作

【04】MySQL:存储引擎

南笙酒味 提交于 2019-11-28 17:28:46
写在前面的话 在使用 Linux 的时候,可以经常听到有关文件系统 FS(File System)的东西,MySQL 也有属于自己类似的东西,那就是存储引擎。之前在创建数据表的时候,在 Create table 后面一般都加了 engine=innodb。这就是指定存储引擎。 关于存储引擎 可以将存储引擎就当作 Linux 而言的文件系统,其主要功能在于:数据读写 / 安全 / 一致性,提升读写性能,提供热备份,自动故障恢复,高可用等。 需要知道的存储引擎大致有: InnoDB , MyISAM , MEMORY ,ARCHIVE, CSV , BLACKHOLE ,MERGE,NDBCLUSTER,EXAMPLE 等 查看数据库支持的存储引擎: show engines; 结果: 值得注意的是,存储引擎针对的对象是表,这意味着一个库中,可能存在多种存储引擎,例如: select TABLE_NAME,ENGINE from information_schema.tables where TABLE_SCHEMA="mysql"; 结果: 对于 MySQL 的两大分支 Percona 和 MariaDB 的存储引擎: Percona:默认 XtraDB MariaDB:默认 InnoDB 同样也有其它的存储引擎:TokuDB,RocksDB,MyRocks 等。

MySQL中的存储引擎

两盒软妹~` 提交于 2019-11-28 15:32:42
mysql存储引擎概述 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。 这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。 MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。 选择如何存储和检索你的数据的这种灵活性是MySQL为什么如此受欢迎的主要原因。其它 数据库系统 (包括大多数商业选择)仅支持一种类型的 数据存储 。 遗憾的是,其它类型的数据库解决方案采取的“一个尺码满足一切需求”的方式意味着你要么就牺牲一些性能,要么你就用几个小时甚至几天的时间详细调整你的数据库。使用MySQL,我们仅需要修改我们使用的存储引擎就可以了 mysql支持哪些存储引擎?   mysql5

mysql优化数据库方法

半腔热情 提交于 2019-11-28 15:22:31
首先声明此篇博客为转载,转载自最下方链接,为防止本人遗忘,故发布博客 第一方面:30种mysql优化sql语句查询的方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by涉及的列上建立索引。   2.应尽量避免在 where 子句中使用 !=或<> 操作符,否则将引擎放弃使用索引而进行全表扫描。   3.应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num is null   可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:   select id from t where num=0   4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num=10 or num=20   可以这样查询:   select id from t where num=10   union all   select id from t where num=20   5.下面的查询也将导致全表扫描:   select id from t where name like '%abc%'   对于 like '..%'

【MySQL】存储引擎

。_饼干妹妹 提交于 2019-11-28 15:14:53
原文: http://blog.gqylpy.com/gqy/245 目录 #. MySQL支持的存储引擎 1. InnoDB 2. MyISAM 3. NDB 4. Memory 5. Infobright 6. NTSE 7. BLACKHOLE MySQL中的库即文件夹,表即文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制.(如:处理文本用txt类型,处理表格用excel, 处理图片 用png等) 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. PS:存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库 中数据 的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 在Oracle和SQL Server等数据库中只有一种存储引擎,所有数据库存储管理机制都是一样的,而MySQL数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 ![在这里插入图片描述](http://blog.gqylpy.com/media/ai/2019-03/f065e887-be54-4608-a236-c400c1478427.png) SQL解释器

【MySQL】存储引擎

只愿长相守 提交于 2019-11-28 15:12:13
原文: http://blog.gqylpy.com/gqy/245 目录 #. MySQL支持的存储引擎 1. InnoDB 2. MyISAM 3. NDB 4. Memory 5. Infobright 6. NTSE 7. BLACKHOLE MySQL中的库即文件夹,表即文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制.(如:处理文本用txt类型,处理表格用excel, 处理图片 用png等) 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. PS:存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库 中数据 的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 在Oracle和SQL Server等数据库中只有一种存储引擎,所有数据库存储管理机制都是一样的,而MySQL数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 ![在这里插入图片描述](http://blog.gqylpy.com/media/ai/2019-03/f065e887-be54-4608-a236-c400c1478427.png) SQL解释器

MySQL存储引擎介绍

左心房为你撑大大i 提交于 2019-11-28 15:04:46
mysql数据库常用的三号昂存储引擎:  数据库的存储引擎:5.6版本之后的默认为InnoDB存储,5.5版本之前的默认是MyISAM存储引擎 1.第一种myisam:三个文件 (1)表结构存文件、数据文件、搜索目录三个文件都存放在硬盘上 (2)应用于以读和插入为主的操作,很少的更新和删除 (2)不支持事务安全、不支持外键、不支持行级锁,表级锁严重影响并发 2.第二种innodb:两个文件 (1)表结构文件、数据和搜索目录文件都存放在硬盘上 (2)支持支持外键、支持行级锁、表级锁、事务安全确保事务的完整提交和回滚, (3) 3.第三种memory:两个文件 (1)表结构存储在硬盘,数据存储在内存,对表的大小有限制 (2)读写速度快,关机会导致内存数据的丢失,多用于热新闻 存储引擎在mysql中的使用      存储引擎相关sql语句 查看当前的默认存储引擎: mysql> show variables like "default_storage_engine"; +------------------------+--------+ | Variable_name | Value | +------------------------+--------+ | default_storage_engine | InnoDB | +------------------------+--