数据库
文章平均质量分 83
数据库复习
干干干就完了
这个作者很懒,什么都没留下…
展开
-
分库分表总结
分库分表垂直角度(表结构不同)垂直分表:将一个表字段拆分为多个表,每个表存储部分字段好处:避免IO时锁表的次数,分离热点字段和非热点字段,避免大字段IO导致性能下降;原则:业务经常组合查询的字段一个表,不常用的字段一个表;text,blob类型字段作为附属表;垂直分库:根据业务将表分类,放到不同的数据库服务器上好处:避免表之间竞争同个物理机的资源,比如CPU、内存、硬盘、网络IO;原则:根据业务相关性进行划分,领域模型,微服务划分一般就是垂直分库;水平角度(表结构一样)转载 2022-03-10 15:02:58 · 87 阅读 · 0 评论 -
数据库连接
数据库连接连接的本质数据库连接就是把各个表中的记录都取出来依次匹配,并把匹配后的组和发送给客户端,把t1和t2两个表连接起来的过程如图所示。过程看起来就是把t1表中的记录和t2表中的记录连接起来组成一个更大的记录,所以这个查询称为连接查询。如果连接查询的结果集中包含一个表中的每一条记录与另一个表中的每一条记录相互匹配的组和,那么这样的结果称为笛卡尔积。因为表t1中有3条记录,表t2中有3条记录,所以这两个表连接之后的结果集合有9条记录。可以把t1表和t2表连接起来的查询语句写成下图所示样子。连原创 2022-02-09 22:02:28 · 3858 阅读 · 0 评论 -
超键,候选键,主键,外键;drop,truncate和delete的区别;外键约束
超键,候选键,主键,外键主键:对数据库表中的每一行数据进行唯一标识任意两行的主键值都不同包含主键值的列从不修改或更新主键值不能重用使用PRIMARY KEY进行标识外键:如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键,则该属性集是关系模式R1的外键;超键:在关系中能唯一标识元组的属性集称为关系模式的超键。比如一张学生信息表,学生表中含有学号或者身份证号的任意组合都称为此表的超键。如:(学号),(学号,姓名),(身份证号,性别)等;候选键:不含多余属性转载 2021-07-05 12:35:37 · 2844 阅读 · 0 评论 -
mysql索引
文章目录索引索引的优缺点优点缺点创建索引准则应该创建索引的列不该创建索引的列聚集索引非聚集索引聚集索引和非聚集索引的优缺点优点缺点联合索引回表查询覆盖索引如何实现覆盖索引哪些场景适合适用覆盖索引来优化SQL全表count()查询优化列查询回表优化分页查询自适应哈希索引操作索引全文索引倒排索引全文索引FULLTEXT 与 LIKE+%的对比全文索引的限制创建全文索引使用全文索引索引失效的情况explain索引索引是对数据库表中的一列或多列的值进行排序的一种结构。Mysql索引的建立对于mysql的高效运行转载 2021-04-20 00:01:29 · 86 阅读 · 0 评论 -
Mysql几种存储引擎比较,数据库缓冲,事务语法,约束,视图,分区表,InnoDB关键特性
文章目录MySQL存储引擎InnoDB存储引擎MyISAM存储引擎NDB存储引擎Memory存储引擎Archive存储引擎数据库缓冲缓存池Buffer Poolfree链表和flush链表划分区域的LRU链表Mysql中事务的语法提交事务手动中止事务自动提交隐式提交保存点约束数据完整性约束的创建和查找ENUM和SET约束约束和索引的区别对错误数据的约束触发器与约束外键约束视图分区表RANGE分区LIST分区HASH分区KEY分区COLUMNS分区子分区InnoDB关键特性插入缓冲insert bufferc转载 2021-05-06 11:42:24 · 271 阅读 · 0 评论 -
Mysql两种存储引擎,数据库事务,隔离级别,MVCC,范式和反范式,varchar与char区别,存储过程
文章目录MySQL两种存储引擎MyISAM和InnoDB两者之间的差别MyISAM和InnoDB的应用场景数据库事务1.事务2.事务的语句3.事务的四个属性4.事务的保存点隔离级别MVCC多版本并发控制范式和反范式范式的优点和缺点反范式的优点和缺点混用范式化和反范式化VARCHAR和CHAR类型VARCHARCHAR存储过程存储过程的好处MySQL两种存储引擎MyISAM是MySQL的默认数据库引擎(5.5版本之前),由早期的ISAM(indexed sequential Access Method:有转载 2021-03-26 19:33:35 · 182 阅读 · 0 评论 -
数据库设计三大范式
转自 https://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html为了准备找工作数据库设计三大范式为了建立冗余较小,结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结,要想设计一个结构合理的关系型数据库,必须满足一定的范式。第一范式(确保每列保持原子性)第一范式是最基本的范式,如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式转载 2021-03-25 09:50:42 · 97 阅读 · 0 评论 -
mysql中的锁
解决并发事务带来问题的两种基本方式并发事务访问相同记录的情况大致可以划分为3种:读-读情况:并发事务相继读取相同的记录。读取操作本身不会对记录有任何影响,不会引起什么问题,所以允许这种情况的发生。写-写情况:并发事务相继对相同的记录进行改动读-写或写-读情况:也就是一个事务进行读取操作,另一个事务进行改动操作写-写情况在写-写情况下,会发生脏写的现象,任何一种隔离级别都不允许这种现象的发生。所以在多个未提交事务相继对一条记录进行改动时,需要让它们排队执行。这个排队过程其实是通过为该记录加锁实转载 2021-04-29 17:06:04 · 548 阅读 · 2 评论 -
MVCC原理
MVCC原理创建一个表CREATE TABLE hero( number INT, name VARCHAR(100), country VARCHAR(100), PRIMARY KEY (number))Engine=InnoDB CHARSET=utf8;向这个表插入一条记录insert into hero VALUES(1,'刘备','蜀');版本链在使用innodb存储引擎的表时,它的聚集索引记录中都包含下面两个必要的隐藏列(row_id并不是必要的;在转载 2021-04-27 19:55:39 · 428 阅读 · 0 评论 -
redo,undo,错误日志,查询日志,慢查询日志,二进制日志
原子性,一致性,持久性通过数据库的redo log和undo log来完成,redo log称为重做日志,用来保证事务的原子性和持久性。undo log用来保证事务的一致性。redo和undo的作用都可以视为一种恢复操作,redo恢复提交事务修改的页操作,而undo回滚行记录到某个特定版本。因此两者记录的内容不同,redo通常是物理日志,记录的是页的物理修改操作。undo是逻辑日志,根据每行记录进行记录。redo重做日志用来实现事务的持久性,即事务ACID中的D。其由两部分组成:一是内存中的重做日志缓转载 2021-04-20 21:03:04 · 371 阅读 · 0 评论 -
B树,B+树
Mysql采用B+树原因B树和B+树最重要的一个区别就是B+树只有叶子节点存放数据,其余节点用来索引。而B树的每个节点都会有data域。这就决定了B+树更适合用来存储外部数据。也就是所谓的磁盘数据。B+树的磁盘读写代价更佳。B+树的内部节点并没有指向关键字具体信息的指针,因此其内部节点相对B树更小。如果把所有同一内部节点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也就越多。一次性读入内存中需要查找的关键字也就越多。相对来说IO读写次数也就降低了。B+树的查...转载 2021-04-17 17:30:19 · 1559 阅读 · 0 评论