互联网公司面试必问的MySQL题目
常见的解决死锁的方法
如果业务处理不好可以用分布式事务锁或者使用乐观锁 05SQL的生命周期?关键字的先后顺序?
06什么是乐观锁?悲观锁?实现方式? 悲观锁: 悲观锁指对数据被意外修改持保守态度,依赖数据库原生支持的锁机制来保证当前事务处理的安全性,防止其他并发事务对目标数据的破坏或破坏其他并发事务数据,将在事务开始执行前或执行中申请锁定,执行完后再释放锁定。这对于长事务来讲,可能会严重影响系统的并发处理能力。 自带的数据库事务就是典型的悲观锁。 乐观锁: 乐观锁(Optimistic Lock),顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在提交更新的时候会判断一下在此期间别人有没有去更新这个数据。乐观锁适用于读多写少的应用场景,这样可以提高吞吐量。 一般是加一个版本号字段 每次更新时候比较版本号 07大数据情况下如何做分页? 可以参考阿里巴巴java开发手册上的答案 08什么是数据库连接池? 从上一个sql生命周期题目,可以看到其中的连接在里面发挥着重大作用,但频繁的创建和销毁,非常浪费系统资源。由于数据库更适合长连接,也就有个连接池,能对连接复用,维护连接对象、分配、管理、释放,也可以避免创建大量的连接对DB引发的各种问题;另外通过请求排队,也缓解对DB的冲击。 互联网公司面试必问的MySQL题目(下)什么是数据库索引?索引有哪几种类型?什么是最左前缀原则?索引算法有哪些?有什么区别? 索引是对数据库表中一列或多列的值进行排序的一种结构。一个非常恰当的比喻就是书的目录页与书的正文内容之间的关系,为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。 主键索引: 数据列不允许重复,不允许为NULL.一个表只能有一个主键。 唯一索引: 数据列不允许重复,允许为NULL值,一个表允许多个列创建唯一索引。 可以通过
创建唯一索引 可以通过
创建唯一组合索引 普通索引: 基本的索引类型,没有唯一性的限制,允许为NULL值。 可以通过ALTER TABLE table_name ADD INDEX index_name (column);创建普通索引 可以通过ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3);创建组合索引 全文索引: 是目前搜索引擎使用的一种关键技术。 可以通过ALTER TABLE table_name ADD FULLTEXT (column);创建全文索引 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |