数据库

作者: 隔壁丨王大爷 | 来源:发表于2018-10-18 15:02 被阅读6次

介绍一下聚簇索引和非聚簇索引

聚簇索引(innobe)的叶子节点就是数据节点 而非聚簇索引(myisam)的叶子节点仍然是索引文件 只是这个索引文件中包含指向对应数据块的指针

索引失效

where用了!=

使用了函数

模糊搜索时使用了非前缀,如“like %abc”

选择性低

Or条件

ACID

1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。

2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。事务必须是使数据库从一个一致性状态变到另一个一致性状态。多个账户钱的总和不变

3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。(即事务隔离级别)(转钱时,从其他用户角度看)

4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

事务的隔离级别

1、脏读:脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。

2、不可重复读:不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。

3、虚读(幻读)

在同一个事务中,同一个查询多次返回的结果不一致。事务A新增了一条记录,事务B在事务A提交前后各执行了一次查询操作,发现后一次比前一次多了一条记录。就好像产生幻觉一样,这就是发生了幻读。

数据库的隔离级别

1、未提交读(READ UNCOMMITTED)

事务中的修改,即使没有提交,对于其他事务来说也是可见的。也就是说事务可以读取未提交的数据,也就是脏读(Dirty Read).

这是最低的隔离级别,实际的应用中一般不用这种隔离级别。

2、提交读(READ COMMITTED)

一个事务所做的修改在提交前对于其他事务是不可见的。所以一个事务中两次执行同样的查询,有可能会产生不一样的结果,

因此这个隔离级别也成为不可重复读(nonrepeatable read)

3、可重复读(REPEATABLE READ)

可重复读保证了同一个事务中对同样记录的查询结果是一致的,所有他不会产生以上两种隔离级别的脏读和结果不一致情况。无法解决幻读。(InnoDB.XtraDB采用MVCC解决幻读)。

4、可串行化(SERIALIZABLE)

可串行化是最高的隔离级别,通过强制事务串行执行来避免前面说的问题。

简单说,他会在读取的每一行上都加上锁,所以会导致大量的超时 和锁争用问题。

实际应用中很少用到这个,除非需要确保数据的一致性并且没有并发的情况下才考虑。

sql相关,sum与count区别

SUM是对符合条件的记录的数值列求和

COUNT 是对查询中符合条件的结果(或记录)的个数

group by用法,注意事项

数据库死锁/如何防止

数据库常见死锁原因及处理 - CSDN博客

sql中join的几种操作的区别

sql join()四种用法区别 - CSDN博客

union和union all的区别,谁的效率更高

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序

Union All:对两个结果集进行并集操作,包括重复行,不进行排序

用distinct和用group by去重

mysql存储引擎

存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Blackhole, 5. CSV, 6. Performance_Schema, 7. Archive, 8. Federated , 9 Mrg_Myisam

MyISAM和InnoDB的主要区别和应用场景 - CSDN博客

MySQL主从复制

Mysql主从同步(复制) - kylinlin - 博客园

explain

MySQL Explain详解 - GoogSQL - 博客园

相关文章

  • MySQL数据库day01

    系统数据库 ​​​ 创建数据库 ​​​ ​​​ ​​​ ​​​ 查看所有数据库 使用数据库 修改数据库 删除数据库...

  • 数据库操作

    创建数据库: 选择数据库: 查看数据库: 修改数据库: 删除数据库:

  • Ubuntu操作mysql数据库命令

    一、连接数据库 连接本地数据库 退出数据库 二、操作数据库 创建数据库 显示数据库 删除数据库 连接数据库 查看状...

  • 4-14

    创建数据库 createdatabase数据库名称; 删除数据库 dropdatabase数据库名称; 查看数据库...

  • [后端开发] Mysql学习笔记

    1.0 数据库 创建数据库 查看所有数据库 删除数据库 切换数据库名 查看正在使用的数据库 2.0 数据库表 创...

  • 2020最新最全数据库系统安全

    数据库标识与鉴别 数据库访问控制 数据库安全审计 数据库备份与恢复 数据库加密 资源限制 数据库安全加固 数据库安...

  • 2020-01-05 sql基本概念

    数据库用来储存数据。 数据库的种类大致有:层次数据库、关系数据库、面向对象数据库、XML数据库、键值数据库。 关系...

  • Mysql数据库基本操作

    连接数据库 退出数据库 查看数据库版本 显示数据库时间 查看当前使用的数据库 查看所有数据库 数据库备份 导入数据...

  • mysql命令行操作

    准备 登陆 数据库操作 查看现有数据库 创建数据库 删除数据库 查看数据库 使用数据库 查看当前数据库 表操作 新...

  • 1.7.1 MySQL数据库学习

    1. 数据库命令行学习 进入数据库 创建数据库 查看数据库列表 删除数据库 使用数据库 查看当前数据库 2. 表 ...

网友评论

      本文标题:数据库

      本文链接:https://www.haomeiwen.com/subject/byhkgftx.html