菜鸡秋招第一次面试以后……应该好好研究一下索引、事务、死锁了

作业帮面经和感受

作业帮一面面经,有幸收到了二面,过两天会来持续更新;
1.自我介绍然后讲项目背景设计等等
2.域名方面,怎么生成的
3.多进程多线程,进程线程区别
4.多进程并发怎么实现,有什么问题,这个不会
5.多线程会有哪些问题,怎么解决
6.讲一下索引和事物,
7.你的图片服务器项目中,怎么解决脏读幻读问题的
8.死锁的条件以及避免死锁的办法
9.写数据库语句,学生表啥的
10.linux指令
11.讲java的三大特性
12.讲list set 和map
13.hashmap和hashtable的区别
14.处理冲突的办法
15.手写冒泡和快排
面完的知识查漏和一些感受
索引和事务感觉自己掌握的还是不好,所以又转门总结了一下,还有死锁那儿理解的不透彻,最重要的感受是把知识掌握了跟你面试能不能说上来那是两回事,不说了,我滚去学习了……

一、索引

1、什么是索引?为什么要有索引?

简单来说,索引就像一个目录;比如你想在图书馆借一本莫言的小说,一楼存的数学类,二楼医学类,三楼文学类。在三楼一排存的徐志摩的,二排存的莫言的,三排存的林徽因的。索引就相当于引导,有人告诉你三楼二排存的莫言的,你就不用从一楼一本一本的去往上找,这就大大增加了查找速度。

来官方一点:索引能快速找出在某一列中有一特定值的行。不使用索引,mysql必须从第一条记录开始查找,直到找到相关的行。如果表中查询的列有一个索引,mysql能快速到达某个位置去搜索数据文件,而不必查看所有数据。索引是对数据库中一列或多列的值进行排序的一种结构,用B+树实现,它也算一个文件,占据一定的物理空间;

2、 索引的优缺点

advantage:
1、提高查询性能(这个才是最最重要的)
2、创建唯一性索引,保证数据库表中每一行数据的唯一性;
3、加速表和表之间的连接;
4、在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间

disadvantage
1、索引需要占物理空间,你创建的索引也得要用一定的空间来存,毕竟天下没有免费的午餐。
2、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

3、索引的分类

唯一索引:数据列不允许重复,允许为null;一个表允许多个列创建唯一索引;例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。

主键索引:在数据库中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型,数据列不允许为空,不允许为null;一个表只能有一个主键;

普通索引:就是简单的加速查询,没有唯一性的限制,允许未null;
全文索引:对文本内容进行搜索,解决像 where name like "%word%"这类模糊查询效率比较低的问题;目前只有MyISAM引擎支持;

根据物理地址是否连续又分为聚簇索引和非聚簇索引,现在Myisam使用的是非聚簇索

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值