数据库相关知识点小结

问题

1.数据库索引
2.相关数据库的默认隔离级别
3.事务的ACID
4.事务的隔离级别
5.数据库的锁
6.数据库分库分表
7.NOSQL?
8.数据库优化
8.数据库三范式
9.SQL语句
10.B-Tree

解答

1.数据库索引

索引:满足特定高效查找算法的数据结构,这些数据结构以某种方式指向数据。

索引的特点:

优点:

1.大大提高检索的性能
2.可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义
3.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间
4.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能
5.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
6.覆盖索引

缺点:

1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

索引种类包含:

普通索引
唯一索引
主键索引

2.相关数据库的默认隔离级别
mysql 可重复读

3.事务的ACID

原子 一致 隔离 持久

4.事务的隔离级别
全局设置:mysql.ini
session设置
项目设置:可以通过Spring对单个项目设置

read uncommitted
read committed 脏读
repeated read 不可重复读
serializable 幻读

5.数据库的锁

在语句后加语句

1.共享锁(Shared lock)
2.更新锁(Update lock)
3.排他锁(独占锁,Exclusive Locks)
4.意向锁(Intent Locks)
5.计划锁(Schema Locks)
6.批量更新Bulk Update Locks

乐观锁和悲观锁 version字段

mysql 表锁,行锁,页面锁

6.数据库分库分表

分别解决数据库量大,模块过多。
分别为水平和垂直

7.NOSQL?

易扩展,大数据量,高性能,灵活,高可用。

8.数据库优化
1、选取最适用的字段属性
2、使用连接(JOIN)来代替子查询(Sub-Queries)
3、使用联合(UNION)来代替手动创建的临时表
4、事务
5、锁定表
6、使用外键
7、使用索引
8、优化的查询语句

9.SQL语句优化

8.数据库三范式

9.SQL语句

10.B-Tree