数据库相关知识点
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
浙公网安备 33010602011771号