Mysql数据库基础及面试常问问题

一、常说的事务ACID是什么?

事务的四⼤特性 ACID
原⼦性Atomicity
⼀个事务必须被事务不可分割的最⼩⼯作单元,整个操作要么全部成功,要么全部失败,⼀般就是通过
commit rollback 来控制
⼀致性Consistency:
数据库总能从⼀个⼀致性的状态转换到另⼀个⼀致性的状态,⽐如下单⽀付成功后,开通视频
播放权限,只要有任何⼀⽅发⽣异常就不会成功提交事务
隔离性Isolation:
⼀个事务相对于另⼀个事务是隔离的,⼀个事务所做的修改是在最终提交以前,对其他事务是不可⻅的
持久性Durability:
⼀旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失

二、查Mysql的存储引擎

说下你知道Mysql常⻅的存储引擎,新版Mysql默认是哪个?
常⻅的有多类, InnoDB MyISAM MEMORY MERGE ARCHIVE CSV 等。
⼀般⽐较常⽤的有 InnoDB MyISAM。
MySQL 5.5 以上的版本默认是 InnoDB 5.5 之前默认存储引擎是 MyISAM。
mysql的存储引擎InnoDB&MyISAM的异同和选择
一般来讲,选择Innodb就可以了

三、mysql索引

索引类型

 数据库索引的好处和坏处,你常⽤的最佳实践

创建索引的时候主要考虑什么?使⽤索引的优缺点有哪些?使⽤应该注意些什么?
考虑点:结合实际的业务场景,在哪些字段上创建索引,创建什么类型的索引
索引好处:
快速定位到表的位置,减少服务器扫描的数据
有些索引存储了实际的值,特定情况下只要使⽤索引就能完成查询
索引缺点:
索引会浪费磁盘空间,不要创建⾮必要的索引
插⼊、更新、删除需要维护索引,带来额外的开销
索引过多,修改表的时候重构索引性能差
索引优化实践
前缀索引,特别是 TEXT BLOG 类型的字段,只检索前⾯⼏个字符,提⾼检索速度
尽量使⽤数据量少的索引,索引值过⻓查询速度会受到影响
选择合适的索引列顺序
内容变动少,且查询频繁,可以建⽴多⼏个索引
内容变动频繁,谨慎创建索引
根据业务创建适合的索引类型,⽐如某个字段常⽤来做查询条件,则为这个字段建⽴索引提⾼查询速度
组合索引选择业务查询最相关的字段

四、数据库查询指令的执行顺序

数据库查询的指令执⾏顺序 select where from group by having order by。
where 初步过滤条件
group by 过滤后进⾏分组 [ 重点 ]
having 对分组后的数据进⾏⼆次过滤 [ 重点 ]
order by 按照怎样的顺序进⾏排序返回 [ 重点 ]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_38041697

请各位老板打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值