mysql面试准备

存储引擎:MyISam,Innodb.MyISam不支持事物,不支持行锁,速度快,不支持外建索引,存储磁盘有三个文件,表结构,主键,数据。

Innodb:支持事物,支持行锁,存储磁盘两个文件,表结构,主键与数据一个文件。

存储的数据类型有两种:B-Tree与B+Tree.

B-Tree:节点与叶子节点,节点两端有指针,叶子节点没有指针。叶节点具有相同的深度。节点存储数据的个数叫做度。索引与数据是存储在一个二维数组里。在删除或插入数据时会破坏B-Tree的性质。

B+Tree:节点只存索引,这样在单位度下能更快的读取到数据。叶节点存储数据,没有指针,但是有相邻数据的箭头。

一般使用磁盘I/O的次数评价索引结构的优劣,B+Tree一般度都会大于100,所以h一般在3-5之间,目前最流行的是B+Tree结构

Innodb引擎推荐使用主键自增原则,这样才能顺序查找,提高了数据查询的速度,这是根据存储结构相关的。

数据库优化的建议:

1.主键自增,字段默认值不要为null,null是一种特殊数据需要单独存储浪费空间,并且查询只能使用is not null 或者使用is null查询全表扫描,查询性能不高。

2.对经常查询的数据加索引,联合索引要符合最左前缀原则使用。

3.避免使用 order by ,group by 这样的聚合函数,可以在业务方法里对数据处理。

4.mysql的事物隔离级别(读已提交,读未提交,可重复读,串行化serializable)

5.面试经常问,如果我们有几亿的用户,我们怎么进行数据库设计,水平分表,可以根据用户id取模进行数据负载均衡以及搭建集群读写分离的方案解决。(扩展性差)

6.对于经常查询一般不做修改的数据,可做成服务端缓存,修改了更新缓存。

7.对于统计的数据,如果对实时性能要求不高,可以定时查询放到一个统计表里。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值