品牌网站建设小8蝌蚪,绿色主色调的网站,企业定制网站建设公司哪家好,湖州广告设计公司数据库1.索引的基本原理2.聚簇和非聚簇索引的区别3.mysql索引的数据结构以及各自的优劣4.索引的设计原则5.事务的基本特性和隔离级别6.mysql主从同步原理7.简述MyISAM和InnoDB的区别8.简述mysql中索引类型及对数据库性能的影响9.Explain语句结果中各个字段分别表示什么10.索引覆…
数据库1.索引的基本原理2.聚簇和非聚簇索引的区别3.mysql索引的数据结构以及各自的优劣4.索引的设计原则5.事务的基本特性和隔离级别6.mysql主从同步原理7.简述MyISAM和InnoDB的区别8.简述mysql中索引类型及对数据库性能的影响9.Explain语句结果中各个字段分别表示什么10.索引覆盖是什么11.最左前缀原则是什么12.Innodb是如何实现事务的13.B树和B树的区别为什么myesql使用B树14.mysql慢查询该如何优化15.数据库设计三范式16.左连接、右连接、笛卡尔积、全连接和内连接的区别17.SQL约束有哪几种18.事务的特性19.事务的隔离级别20.索引的优缺点什么时候使用索引什么时候不能使用索引21.什么是数据库连接池 为什么需要数据库连接池22.B树23.聚集索引和非聚集索引的区别24.为什么推荐使用整形自增的主键而不是用UUID1.索引的基本原理
索引用来快速的寻找那些具有特定值的记录如果没有索引一般来说执行查询时遍历整张表索引的原理就是把无序的数据变成有序的查询1把创建了索引的列的内容进行排序
2对排序结果生成倒排表
3在倒排表内容上拼上数据地址链
4在查询的时候先拿到倒排表内容再取出数据地址链从而拿到数据2.聚簇和非聚簇索引的区别
都是B树的数据结构1聚簇索引将数据存储与索引放到一块并且是按照一定顺序组织的找到索引也就找到了数据数据的物理存放顺序与索引顺序一致。2非聚簇索引叶子节点不存储数据存储的是数据行地址也就是根据索引查找到数据行的位置再取磁盘查找数据数据。3.mysql索引的数据结构以及各自的优劣 4.索引的设计原则
查询更快、占用空间更小5.事务的基本特性和隔离级别
基本特性
1原子性一个事务中的操作要么全部成功要么全部失败
2一致性数据库总是从一个一致性的状态转换到另外一个一致性的状态
3隔离性一个事务的修改在最终提交之前对其他事务是不可见的
4持久性一个事务一旦提交所做的修改就会永久的保存到数据库中隔离级别
1读未提交可能会读到其他事务未提交的数据也叫做脏读
2读已提交解决了脏读但是没有解决不可重复读也就是两次读取的结果不一致
3可重复读解决了不可重复读但是没有解决幻影读。这是mysql的默认隔离级别
4串行一般是不会使用的因为他会给每行数据都加锁会导致大量的超时和锁竞争问题脏读某个事务已更新一份数据但是还未提交另一个事务在此时读取了同一份数据由于某些原因前一个事务进行了RollBack操作则后一个事务读取到的数据就是不正确的不可重复读在一个事务的两次查询之中数据不一致这可能是两次查询过程中间插入了一个事务更新的原有的数据6.mysql主从同步原理 7.简述MyISAM和InnoDB的区别 8.简述mysql中索引类型及对数据库性能的影响
1普通索引允许被索引的数据列包含重复的值2唯一索引可以保证数据记录的唯一性3主键索引是一种特殊的唯一索引在一张表中只能定义一个主键索引主键用于唯一标识一条记录4联合索引索引可以覆盖多个数据列5全文索引通过建立倒排索引可以极大的提升索引效率解决判断字段是否包含的问题是目前搜索引擎使用的一种关键技术对数据库性能的影响
1索引可以极大的提高数据的查询速度
2通过使用索引可以在查询过程中使用优化隐藏器提高系统的性能
3但是会降低插入、更新、删除表的速度因为在执行这些写操作时还要操作索引文件9.Explain语句结果中各个字段分别表示什么 10.索引覆盖是什么
索引覆盖就是在一个SQL执行时可以利用索引来快速查找并且此SQL所要查询的字段在当前索引对应的字段中都包含了
那么此SQL走完索引后不用回表了所需要的字段都在当前索引的叶子节点上存在可以直接作为结果返回了11.最左前缀原则是什么 12.Innodb是如何实现事务的 13.B树和B树的区别为什么myesql使用B树 14.mysql慢查询该如何优化
1检查是否走了索引如果没有则优化SQL利用索引2检查所利用的索引是否是最优索引3检查所查字段是否都是必须的是否查询了过多字段查出了多余数据4检查表中数据是否过多是否应该进行分库分表了15.数据库设计三范式
1第一范式每个表都应该有主键并且每个字段要求原子性不可再分2第二范式在第一范式的基础上所有非主键字段必须完全依赖主键不能产生部分依赖3第三范式在第二范式的基础上所有非主键字段必须直接依赖主键不能产生传递依赖设计范式的目的减少数据冗余16.左连接、右连接、笛卡尔积、全连接和内连接的区别
1左连接(左外连接)以左表作为基准进行查询左表数据会全部显示出来右表如果和左表数据不匹配则显示为null2右连接(右外连接)以右表作为基准进行查询右表数据会全部显示出来左表如果和右表数据不匹配则显示为null3全连接先以左表进行左外连接再以右表进行右外连接4内连接显示表之间有连接匹配的所有行5笛卡尔积也叫交叉连接17.SQL约束有哪几种
1NOT NULL(非空约束)用于控制字段的内容一定不能为空2UNIQUE(唯一性约束)控制字段内容不能重复一个表允许有多个Unique约束3PRIMARY KEY(主键约束)用于控制字段内容不能重复但一个表只允许出现一个4FOREIGN KEY(外键约束)用于预防破坏表之间连接的动作也能防止非法数据插入外键列因为它必须是它指向的那个表中的值之一18.事务的特性
1原子性事务是最小的执行单位不允许分割。整个事务中的所有操作要么全部完成要么全部不完成不可能停滞在中间某个环节2一致性在事务开始之前和事务结束以后数据库的完整性没有被破坏3隔离性并发访问数据库时一个用户的事务不被其他事务所干扰各并发事务之间数据库是独立的4持久性在事务完成以后该事务对数据库中数据的改变是持久的19.事务的隔离级别
事务的隔离级别越高并发性就越差性能就越低1读未提交事务A在事务B未提交前读取数据如果事务B撤销了修改那么A会读取到脏数据2读已提交事务A分别在事务B提交前和提交后读取数据出现不可重复读3可重复读4序列化20.索引的优缺点什么时候使用索引什么时候不能使用索引
1索引最大的好处就是提高查询速度2缺点是更新数据时效率低因为要同时更新索引3对需要频繁查询的数据建立索引对需要频繁更改的数据不建议使用索引21.什么是数据库连接池 为什么需要数据库连接池
1数据库连接池负责分配、管理和释放数据库连接它允许应用程序重复使用一个现有的数据库连接而不是重新建立一个2数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中这些数据库连接的数量是由最小数据库连接数来设定的3数据库连接是一种关键的有限的昂贵的资源对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性影响到程序的性能指标22.B树
1非叶子节点不存储数据只存储索引(冗余)可以放更多的索引2叶子节点包含所有索引字段3叶子节点用指针连接提高区间访问的性能4所有的元素节点从左到右依次递增排序5所有索引元素不重复23.聚集索引和非聚集索引的区别
1聚集索引叶子节点包含了完整的数据(InnoDB采用的聚集索引)2非聚集索引索引文件和数据文件不在一起存储24.为什么推荐使用整形自增的主键而不是用UUID
1查找效率高2占用存储空间少3尽量自增的原因采用非自增插入的时候会效率低