1.索引有哪些类型?
就不同的算法结构来说,索引有B+树、有序数组、哈希等;
就DDL来说,可为字段创建普通索引、唯一索引、主键索引、全文索引,并可指定索引的算法结构。
2.什么是聚簇索引?
mysql的innodb引擎对应的主键索引类型属于聚簇索引、myisam引擎对应的是非聚簇索引,聚簇索引和非聚簇索引都是采用B+树的算法结构,区别在于叶子节点保存的是数据本身还是数据的实际位置。
3.事务是如何保证数据的准确性的?
通过ACID特性来保证的,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
原子性:最小执行单位,要么所有操作都成功,要么都失败
一致性:就是业务逻辑的前后一致,比如微信群里发红包,最后群里用户的账户总额都是与初始一致的。
隔离性:根据业务需要和并发程度来选择隔离级别,有四种隔离级别可选,分别是读未提交,读提交,可重复读,窜行化。
持久化:对数据的操作会被持久化到磁盘,不能再回滚。
4.innodb引擎的优缺点?
优点:支持事务,适合大数据量、高并发的业务
缺点:查询数据总量需要逐行扫描,当表里的数据量大时,这个操作会很耗费资源和时间。
(myisam引擎统计全表数据总量会很快,因为总数会自动记录,可以直接获取。但是统计有条件筛选的范围总数则与innodb引擎相似)
5.视图
什么是视图
视图是虚表,只是对查询语句的封装,查询结果随基表的变动而变动,修改视图实际上还是修改基表。
为什么要使用视图
有的时候,我们可能只关系一张数据表中的某些字段,而另外的一些人只关系同一张数据表的某些字段…
那么把全部的字段都都显示给他们看,这是不合理的。
我们应