数据库相关知识点

个人博客,欢迎来撩 fangzengye.com

1.主键、外键

主键:在数据库以惟一完整标识存储

外键:在另外的表为主键的,在这个表不是主键

2.为什么用自增列为主键

保持唯一性、便于查询。

3.什么是存储过程

是预编译的SQL语句

4.存储过程的优点

执行效率高、减少网络通讯、安全性高、可以重复使用

5.视图

虚拟的表、具有与物理表相同的功能。可以对视图进行增改查操作

6.游标

对查询结果集作为一个单元来有效的处理。游标可以定位为到该表的特定行

7.视图的优缺点

优点:

1.可以选择性选取数据

2.可以通过简单查询的结果

3.维护数据的独立性

4.对相同数据可以产生不同的视图

缺点:

查询前必须将视图抓化成基本表的查询

8.drop、truncate、delete区别

drop:直接删除表

truncate:删除表中数据、在插入id又以开始

delete删除通过where查询的某些数据

索引

1.索引

一般使用B树。

满足特定个高级查找算法以一种更高效的方式,这种数据结构称为索引

2.索引作用、优缺点

作用、优点:

协助快速查询

 

付出代价:

增加数据库的存储空间

插入和修改数据库话费更多的时间、索引表也要随之改变

 

 

3.什么适合字段适合建立索引

需要搜索的列

主键外键

在where子句建立索引

唯一、不为空、经常被查询到

4.什么不适合建立索引

不常用到

很少数据值的

定义为text、image、bit

当修改的性能远远大于检索性能

 

5.hash索引、B+tree索引的区别

hash索引结构的特殊性、检索效率非常高

B+树索引需要从根结点到叶子结点

6.为什么不使用Hash索引而使用B+树索引

Hash索引不能使用范围查询

7.B树和B+树区别

B树:每个节点都存储key和data,叶子结点Null

B+树所有的叶子结点都包含关键字信息

 

8.为什么说B+比B树更适合实际应用中操作系统的文件索引和数据库索引?

1.B+的磁盘读写代价更低

2.B+tree的查询效率更加稳定

 

事务

1.什么是事务?

事务是对数据库中一系列操作进行统一的回滚或者提交的操作

2.事务四大特性(ACID)原子性、一致性、隔离性、持久性?

原子性(Atomicity):
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

一致性(Consistency):
事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B却没收到。

隔离性(Isolation):
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。

持久性(Durability):
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

 

优化

1.查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?

  • 1.查询中用到的关键词主要包含六个,并且他们的顺序依次为
  •  select--from--where--group by--having--order by

其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序 与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行

from:需要从哪个数据表检索数据

where:过滤表中数据的条件

group by:如何将上面过滤出的数据分组

having:对上面已经分组的数据进行过滤的条件

select:查看结果集中的哪个列,或列的计算结果

order by :按照什么样的顺序来查看返回的数据

 

其他

1.数据库的主从复制

主从复制的几种方式:

同步复制:

所谓的同步复制,意思是master的变化,必须等待slave-1,slave-2,...,slave-n完成后才能返回。 这样,显然不可取,也不是MySQL复制的默认设置

异步复制:

如同AJAX请求一样。master只需要完成自己的数据库操作即可,MySQL的默认设置。

半同步复制:

master只保证slaves中的一个操作成功,就返回,其他slave不管。

 

参考资料

https://www.cnblogs.com/wenxiaofei/p/9853682.html

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-12-20 13:21  开源的Boy  阅读(146)  评论(0)    收藏  举报