InnoDB 支持ACID事务,支持事务的四种隔离级别,串行化,可重复读,读已提交,读未提交。

支持行级锁以及外检约束:所以可以支持写并发。

不存储总行数。

逐渐索引采用聚集索引,索引的数据域存储数据文件本身。

关键是用索引

添加适当的索引,可以简化查询,将查询转变为 排好序的快速查询数据结构

在数据库中,除了数据之外,还存在着一种数据结构,这种数据结构以某种方式引用或者叫做指向数据,这样可以在这些数据结构上实现高级查找算法,这样的数据结构就算索引,可以理解为字典的目录。

但是一般来说,索引本身也会很大,是不可能全部存储在内存中的,所以索引通常是以索引文件的方式存在磁盘上,我们平时说的索引,时指B树 BalanceTree多路平衡查找树。

索引分为 单值索引,唯一索引,复合索引,通常用的时复合索引,像建立一张表一样,用create Index 索引名 on 表名(索引列,索引列),要删除用drop ,查看用show

想要查看有没有用到索引的话,可以使用explain+sql语句,里面有10个字段,其中id字段就是看语句执行优先级的,数字越大说明优先级越高,相同的数字按照从上往下的顺序执行,type字段可以看到sql语句的优化程度,总共12个类型。System>const>eq_ref>ref>range>index>all,通常优化到ref  range就够了

索引的优缺点:

优点:

  1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  2. 大大加快数据的检索速度
  3. 加快表与表之间的连接
  4. 可以减少分组和排序的时间
  5. 使用优化隐藏器,提高系统性能

缺点:

  1. 创建和维护索引需要时间,而且这种时间会随着数据量的增加而增加
  2. 索引需要占用物理空间
  3. 对表数据进行增删改的时候,索引也要动态的维护,降低了数据维护速度

说说mysql的存储引擎,有什么区别?索引的介绍的更多相关文章

  1. MySQL InnoDB存储引擎体系架构 —— 索引高级

    转载地址:https://mp.weixin.qq.com/s/HNnzAgUtBoDhhJpsA0fjKQ 世界上只两件东西能震撼人们的心灵:一件是我们心中崇高的道德标准:另一件是我们头顶上灿烂的星 ...

  2. mysql 存储引擎 myisam innodb 区别

    虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是它俩了.可能有站长并未注意过MySQL的存储引擎,其实存储引擎也是数据库设计里的一大重要点,那么博客系统应该使用哪种存储引 ...

  3. mysql数据库存储引擎及区别

    MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERAT ...

  4. MySql中存储引擎MyISAM与InnoDB区别于选择

    InnoDB: 支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和 ...

  5. MySQL之浅谈MySQL的存储引擎

    什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合.     我们通常说的MySql数据库,sql server数据库等 ...

  6. 浅谈MySql的存储引擎(表类型) (转)

    什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合. 我们通常说的MySql数据库,sql server数据库等等其实是 ...

  7. (转)Mysql数据库存储引擎

    什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合.     我们通常说的MySql数据库,sql server数据库等 ...

  8. 【MySQL】MySQL之浅谈MySQL的存储引擎

    什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合.     我们通常说的MySql数据库,sql server数据库等 ...

  9. MySQL数据库----存储引擎

    什么是存储引擎? 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操 ...

随机推荐

  1. 【HDU5521】Meeting

    题目大意:给定一张\(N\)个点的图,构成了\(M\)个团,每个团内的边权均相等,求图上有多少个点满足到\(1\)号节点和\(N\)号节点的最大值最小. 题解: 本题的核心是如何优化连边,考虑对于每一 ...

  2. js替换文本内容。实例

    <script language="javascript"> var r= "1\n2\n3\n"; //将字母\n替换成分号 alert(r.re ...

  3. [Algorithm] Chunk Array

    // --- Directions// Given an array and chunk size, divide the array into many subarrays// where each ...

  4. 题解 [BZOJ2159] Crash的文明世界

    题面 解析 这题一眼换根DP啊 首先,我们考虑一下如何转换\(n^m\)这个式子, 先把式子摆出来吧:\(n^m=\sum_{j=0}^mS(m,j)C_n^jj!\) 其中\(S(m,j)\)表示第 ...

  5. HDU 6074 - Phone Call | 2017 Multi-University Training Contest 4

    看标程的代码这么短,看我的.... 难道是静态LCA模板太长了? /* HDU 6074 - Phone Call [ LCA,并查集 ] | 2017 Multi-University Traini ...

  6. PHP mysqli_info() 函数

    定义和用法 mysqli_info() 函数返回有关最近执行查询的信息. 该函数作用于下列查询类型: INSERT INTO...SELECT... INSERT INTO...VALUES (... ...

  7. http communication process

  8. gcc/g++以c++11编译

    方法一: //在程序头加上预定义编译器命令 #pragma GCC diagnostic error "-std=c++11" //通过#pragma 指示 GCC编译器处理错误的 ...

  9. Spring Boot中@OneToMany与@ManyToOne几个需要注意的问题

    @OneToMany如果不加@JoinColumn,系统会自动在主从表中增加一个中间表. 主表: @Entity(name = "Post") public class Post  ...

  10. Python中的函数递归思想,以及对比迭代和递归解决Fibonacci数列

    什么是递归?简单的说就是:函数自身调用自身. “普通程序员用迭代,天才程序员用递归” 虽然递归 在运行时会不断出栈压栈,调用底层的寄存器,造成空间上的占用以及时间上的缓慢, 但在一些算法上面仍然是递归 ...