InnoDB:支持事务,支持表级锁,行级锁,支持外键,是非聚集索引。 MyISAM:不支持事务,支持表级锁,不支持外键,聚集索引。 聚集索引和非聚集索引的区别:InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+Tree组织的一个索引结构 ...
分类:
数据库 时间:
2020-07-12 22:03:47
阅读次数:
71
在MySQL5.1之后InnoDB成为了默认的存储引擎,InnoDB和MyISAM的区别: 事务 外键 磁盘中的文件 锁 主键 全文索引 InnoDB 支持事务 支持外键 .frm(表定义) .ibd(索引) 支持表、行(默认)级锁 必须(聚集索引) 5.7版本之前不支持 MyISAM 不支持事务 ...
分类:
数据库 时间:
2020-07-10 23:53:35
阅读次数:
84
一,数据库 1.1 按照数据结构,组织存储管理数据的仓库,是一个长期存储在计算机内,有组织的,可共享的统一管理的数据的集合。 1.2 数据库分类 二,数据库管理系统 DBMS 操作和管理数据库的软件,用来建立,使用维护数据库,对数据库进行统一管理和控制,保证数据库的完整性。用户通过数据库管理系统访问 ...
分类:
数据库 时间:
2020-07-10 21:31:54
阅读次数:
68
1)count(*)会忽略所有的列,直接统计所有列数,不要使用count(列名),也就是不要使用count(1),count(id) 2)可以使用explain查询近似值,用近似值替代count(*) 3)使用缓存,记录总数 4)允许的话,把innodb改为myisam 5)SELECT (SELE ...
分类:
数据库 时间:
2020-07-10 18:48:16
阅读次数:
75
Mysql 和其它的数据库产品有一个很大的不同就是事务由存储引擎所决定,例如 MYISAM,MEMORY,ARCHIVE 都不支持事务,事务就是为了解决一组查询要么全部执行成功,要么全部执行失败。 Mysql 事务默认是采取自动提交的模式,除非显示开始一个事务 MariaDB [(none)]> s ...
分类:
数据库 时间:
2020-07-10 13:05:20
阅读次数:
82
1.Memory用的是hash index,但是InnoDB和MyISAM用的是B+树,不用二叉树的原因就是深度可能过深,深度过深影响查询和IO性能; 2.索引使用树的过程: BST:二分查找,不平衡AVL:二叉平衡树,最长子树和最短子树的高度之差不能超过1,数据越多,旋转越多,插入删除效率极低,查 ...
分类:
数据库 时间:
2020-07-08 15:06:03
阅读次数:
70
myIsam引擎把一个表的总行数存在了磁盘上,因此执行count(*)会直接返回结果,效率很高 #但是myisam不支持事物 innodb引擎需要把数据一行行从引擎里读出来,然后计数累加。 innodb由于多版本并发控制机制,同一时刻不同回话拿到的结果可能都不相同,所以不能直接将总行数存储在磁盘上。 ...
分类:
数据库 时间:
2020-07-07 19:56:37
阅读次数:
130
1. MySQL索引引擎有两种:Innodb:聚集索引;Myisam:非聚集索引 2. MySQL 为什么不使用hash、二叉树、红黑树等作为索引的数据结构,而采用 B+ 树? 因为hash、二叉树、红黑树的高度不可控,B+ 树的高度可控,mysql 一般是3~5层。 3. 多路平衡二叉树(B+树) ...
分类:
数据库 时间:
2020-07-04 13:39:38
阅读次数:
67
mysql存储引擎种类 存储引擎 说明 MyISAM 一种高速存储引擎、不支持事务 InnoDB 5.5版本后的默认引擎、支持事务、支持行锁 ISAM 。。。 存储引擎有很多种,这里只着重介绍头两种。 InnoDB MyISAM 锁 表、行锁 表锁 事务 支持事务 不支持 索引 B+ B+ ...
分类:
数据库 时间:
2020-06-28 11:17:51
阅读次数:
59
前言 在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引)。本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明MySQL为什么选择B+树作为索引结构。 一、二叉查找树(BST):不平衡 二叉查找树(BST,Bin ...
分类:
数据库 时间:
2020-06-22 17:15:52
阅读次数:
83