mysql

1.varchar和char的区别?

varchar是变长字段,char是定长字段

2.varchar(10)和int(10)

varchar(10)代表了存储数据的最大长度

int(10)只是展示的长度,int(1)和int(10)所占空间相同

3.ACID

原子性:要么都成功,要么都失败

一致性:总量一致

隔离性:事务间互不影响

持久性:提交事务后数据永久改变不可逆

4.不考虑隔离级别会出现的读的问题

脏读:一个事务读取到了另一个未提交的事务

不可重复读:一个事务多次读同一数据,数据不同

幻读:一个事务读取到了另一个事务添加的数据(重点是添加)

5.隔离级别

 

6.存储过程是什么?(阿里不推荐使用存储过程,因为改变太快)

是一组预编译好的sql语句,提高代码的重用性,减少编译次数。

7.三大范式?

第一范式列不可再分

第二范式在第一范式的基础上非主属性完全依赖于主键

第三范式在第二范式的基础上非主属性间不相互依赖

8.myisam和innodb的区别?

innodb支持事务、外键,myisam不支持

innodb支持行锁,myisam只支持表锁

innodb不支持全文索引,myisam支持

myisam的表结构、数据、索引存在三个文件里,而innodb存在一起

9.主键使用自增id还是UUID?

自增id,因为b+树存储,自增id只需要不断向后排列,而UUID是随机的导致非常多的数据移动,造成插入性能下降。

10.索引的优缺点?

优点:提高数据检索效率,降低io成本

缺点:降低表的更新速度,不仅要保存数据,还要更新索引

        索引以文件形式存在磁盘上,占空间

11.索引分为?

主键索引

单值索引,单列

唯一索引,可以为多次null

复合索引,多列

12.索引失效的原因?

  1. 以%开头的like模糊查询
  2. or连接
  3. is null is not null
  4. varchar类型不加单引号可能会变成int类型
  5. 在索引列上进行计算,函数,类型转换等操作
  6. 最左前缀法则,查询从索引的最左列开始,且不跳过索引中的列
  7. 减少使用select *
  8. 使用!= ,<>的时候无法使用索引导致全表扫描

13.b树和b+树的区别?

b+树的数据都存在叶子节点里,所有非叶子节点可容纳更多的关键字。整个树更加矮胖,树的高度决定了io的次数。

叶子节点按关键字的大小有序连接。

b+树可以遍历所有的叶子节点来获取所有数据(适合范围查询),而b树只能重复的中序遍历效率低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值