![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
数据库相关的知识整理与面试题
零一熊
这个作者很懒,什么都没留下…
展开
-
写一个 sql,查询一个班级里各科分数最高的学生信息
写一个 sql,查询一个班级里各科分数最高的学生信息select b.* from (select subject,max(score) m from grade GROUP BY subject) t,grade b where t.subject=b.subject and t.m=b.score用一句SQL查出所有课程成绩最高和最低的学生及其分数select b.,“最高分” from (select subject,max(score) m from grade GROUP BY subjec原创 2021-07-19 17:48:38 · 12024 阅读 · 0 评论 -
InnoDB和MyISAM的区别
innoDB和MyISAM的区别:InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的, 但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应原创 2021-07-19 17:47:48 · 200 阅读 · 0 评论 -
B树和B+树详解
B树定义:m阶B树是一颗平衡的m路搜索树,需满足以下条件: 1.树中每个节点最多有m个孩子 2.除了根节点和叶子节点外,其它节点至少有(m + 1)/ 2个孩子 3.如果根节点不是叶子节点,最少有两个孩子 4.所有叶子节点都在同一层 5.除了叶子节点,每个节点关键字个数 = 孩子个数 - 1 6.非叶子节点关键字有序,指针指向范围在左右关键字内的子树B树优点:相对于B+树,如果经常访问的数据离根节点很近,而B树非叶子节点存储关键字数据的地址,检索速度优于B+树B+树定义:m阶B原创 2021-07-19 17:43:06 · 692 阅读 · 0 评论 -
数据库中char和varchar的区别
数据库中char和varchar的区别:char:定长,char(n)中的n是字符数,最大为255,char在存储时会去掉尾部空格varchar:不定长,varchar(n)中的n是字节数,最大65535原创 2021-07-19 17:41:01 · 469 阅读 · 0 评论 -
MySQL索引
索引的类型:B-Tree索引, 哈希索引, 空间数据索引(R-Tree), 全文索引索引的优点:1.减少服务器需要扫描的数据量2.帮助服务器避免排序和临时表3.可以将随机I/O变为顺序I/O高性能索引策略:1.前缀索引:索引很长的字符串时可以索引开始的部分字符(会降低索引的选择性:不重复的索引值和数据表记录总数的比值)2.选择合适的索引列顺序:将选择性更高的列放在前面3.聚簇索引:一种数据存储方式,InnoDB的聚簇索引在同一个结构中保存了B-Tree的索引和数据行,数据行实际存放在索引的原创 2021-07-08 19:03:12 · 54 阅读 · 0 评论 -
MySQL事务隔离级别以及MVCC(多版本并发控制机制)
1.隔离级别:读未提交:脏读(读取其它事务未提交的数据),不可重复读,幻读读已提交:不可重复读(一个事务的两次读取数据出现不同的结果,主要是修改操作),幻读可重复读:幻读(一个事务的两次读取数据出现不同的结果,主要是添加和删除操作)可序列化:串行操作,每个读取的数据行加上共享锁2.MVCC:当前读:基于悲观锁的实现,读到的是最新版本的数据,且会对数据上锁快照读:基于MVCC的实现,不会对读取的内容上锁,提高并发性能,可能会读到数据的旧版本MVCC模型:为了实现读-写冲突不加锁,这个读就是指快原创 2021-07-08 19:05:29 · 229 阅读 · 0 评论