mysql面试

什么是索引:

帮助MySQL高效获取数据的数据结构。
提高查找效率,类比字典。
可以简单地理解为:排好序的快速查找数据结构。

数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。

索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。

平常所说的索引,如果没有特别指明,都是B树(多路)

索引的优势:

1.提高数据的查找效率,降低数据的IO成本。
2.通过索引列对数据进行排序,降低数据排序成本,降低CPU的消耗。

索引的劣势:

1.索引也是一张表,该表保存了主键与索引字段,并指向实体表记录,所以索引列也是要占空间的。
2.因此索引大大提高查询速度的同时也会降低表的更新速度,如对数据库进行修改和插入和删除。因为更新表时不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。
2.索引知识提高效率的一个因素,如果你的MySQL有大数据量的表,就要花时间研究建立最优秀的索引,或优化查询。

索引分类:

1.单值索引:即一个索引只包含单个列,一个表可以有多个单列索引。
2.唯一索引:索引列的值必须唯一,但允许有空值。
3.复合索引:一个索引包含多个列
*一张表最多不要建超过5个索引。

基本语法

1.创建索引
create [unique] index indexname on mytable(columnname(length));

alter mytable add [unique] index[indexname] on (columnname(length))

2.删除
drop index [indexname] on mytable

3.查看
show index from table_name

事务特性:

1.原子性
2.一致性:事务必须使数据库从一个一致状态转换到另一个一致状态。
3.隔离性:事物的隔离性指一个事务的执行不能被其他事务所干扰
4.永久性:持久性是指一个事务一旦提交,它对数据库中数据的改变是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。

全部评论

相关推荐

10-28 14:42
门头沟学院 Java
watermelon1124:因为嵌入式炸了
点赞 评论 收藏
分享
评论
点赞
2
分享
牛客网
牛客企业服务