Mysql基础知识

1.mysql引擎InnoDB和MyISam对比

1)InnoDB支持事务,MylSam不支持事务

2)InnoDB支持外键,MylSam不支持外键

3)InnoDB支持行级锁,MylSam是表锁

4)InnoDB空间内存使用高,MylSam空间内存使用低

5)批量插入速度,InnoDB低,MylSam高

综合:MylSam不支持事务、也不支持外键。其优势是访问速度快,对事务完整性没有要求或者以insert,select为主的应用基本上都可以使用这个引擎创建表。

问:对于select coung(*) 哪个引擎更快

答:mylsam更快,因为其维护了一个计数器

2.一张表,里面有ID自增主键,当插入了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再插入一条记录,这条记录的ID是18还是15?

答:如果引擎是MylSam,那么是18。因为MylSam把自增主键的ID记录在数据文件里,重启Mysql自增主键的最大ID不会丢失;

如果引擎是InnoDB,那么是15。因为InnoDB会把自增主键的ID记录在内存中,重启Mysql自增主键的最大ID会丢失。

3.设计表时,字段类型char和varchar的区别?

答:char是固定长度的,varchar不是固定长度的。char的处理速度比varchar快的多,但是会浪费空间。对于InnoDB引擎,内部的行存储没有区分固定长度和可变长度,随着mysql不断升级,varchar性能也在不断提高,所以推荐使用varchar。

4.数据库隔离级别

1)读未提交:可能脏读,不可重读读,幻读。

2)读已提交:只读提交的数据,无脏读。有不可重复读问题:从一个事务开始到结束,正在执行的不能被读到,所以会出现读取旧数据的现场。不可重复读

3)可重复读:加行锁,无脏读,可重复读

4)串行:加表锁,全部串行,无问题。

5.数据库并行事务的问题

1)脏读:事务A读取了事务B未提交的数据,如果事务B回滚了,事务A就读到了脏的无效数据

2)不可重复读:事务A读取了事务B修改前和修改并提交事务后的数据。

3)幻读:两次读之间进行了增删。比如第一次读到了10行数据,第二次读到8行。

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值