JAVA新手入门06~MYSQL提高篇2

尽管上一篇的内容,对于初学者来说,已经算是稍微有点难度了,但是对于有一点工作经验的开发人员来说,仍然算不上有难度,所以这一篇将从面试的角度,总结一下需要了解的知识点,这一篇将只列知识点,不给答案,或者给一个大致的方向。如果要面试的人,也可以试着回答以下问题。如果你现在不想深入研究MYSQL,毕竟人的精力都是有限的,也可以把以下内容,放入到你的TODO LIST中去,以后再慢慢研究,我的建议是,每个编程的人,都应该有一个自己编程的笔记本,例如微软的ONE NOTE,印象笔记、苹果的备忘录(我正在用),然后有一个笔记,是专门存放要做的事情的,在任何时候,任何地点,遇到了不会的东西,立即放入TODO LIST中去。这也是一种编程思想,你想一下,消息队列(MQ)是不是就是这个思路,很多地方都是这个思路,这里就不一一列举了。

1、索引篇
  • mysql哪些索引会命中,哪些不会命中?
  • 怎么查看mysql索引是否命中? explain查看执行计划
  • 联合索引哪些情况索引会命中? 哪些不会呢?
  • mysql底层索引是什么数据结构? B+树
  • 聚簇索引和覆盖索引有什么区别?
  • mysql索引为什么快?
  • mysql索引为什么用B+,而不是B树?
  • 建了索引一定就会快吗? 不是
  • 建了索引,且索引命中了,就一定会快吗?不是
  • varchar类型的列有100个长度,适合建索引吗? 如果不适合,怎么解决?
  • 哪些列适合建索引? 区分度大的列适合,像ID
  • 哪些列不适合建索引? SEX这种 text 长度大的varchar
  • varchar和char有什么区别?
  • 索引有什么坏处? 新增和更新、删除慢了点,占用磁盘空间大了点等等
  • 什么是慢SQL?怎么查看MYSQL的慢SQL?
  • 做过哪些MYSQL的查询优化?
2、事务篇

之前的内容没有讲解事务,但是高级开发人员是必须精通事物的,本篇不打算讲解事务,只给出几个问题,网上的资料也很多,可以自己去找一下

  • 什么是事务?
  • 事务的4个特性是什么? ACID
  • 分别解释ACID是什么意思?
  • 事务的隔离级别有几种?MYSQL默认是什么级别?
  • 什么是脏读、不可重复读、幻读?
  • MVCC和事务隔离级别的关系?
  • 事务的传播机制是什么?
  • @Transactional哪些情况会失效?
3、锁篇
  • 什么是间隙锁?
  • 什么是行锁?
  • 死锁是怎么产生的?
  • 怎么避免死锁?
  • 事务和锁是什么关系?
4、安全
  • 什么是SQL注入?
  • 怎么避免SQL注入?
  • mybatis中#和$的区别
5、其它
  • 电商的订单号可以用自增ID吗?
  • (延伸)怎么设计1个分布式的自增ID,要求不能重复,高性能,高可用。
  • innerDB的自增ID,断电重启之后会怎么样?
  • 数据库字段设计有哪些经验?
  • timestamp和datetime有什么区别?
  • MYSQL支持模糊查询吗?
  • 看过MYSQL的慢日志吗?
  • 数据库连接池用的哪个?
  • 为什么要用连接池?
  • 连接池各个参数设置的都是多少?

如果想更深入的学习MYSQL,可以看一下<高性能MYSQL>这本书,讲的会更细,对于MYSQL的执行流程、索引、缓存、调优等都有特别深入的讲解,远远比这篇文章讲的要多的多。

全文完。

关注我的博客,获取更多Java编程知识: 双King的技术博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值