mysql

目录

目录

1.InnoDB与MyISAM的区别以及选择5.7版本(常见的还有Memory存储引擎,所有的数据都在内存中,数据的处理速度快,但是安全性不高)

   如何选择

2.  主键、外键和索引的区别 

3.聚集索引和非聚集索引的区别

4.char和vachar的区别

5.int(1)和int(11)的区别

6.mysql核心参数



1.InnoDB与MyISAM的区别以及选择5.7版本(常见的还有Memory存储引擎,所有的数据都在内存中,数据的处理速度快,但是安全性不高)

  • InnoDb支持事务,MyISAM不支持。
  • InnoDb支持外键,MyISAM不支持。
  • InnoDb支持表级锁,行级锁,MyISAM只支持表级锁。(InnoDB的行锁是实现在索引上的,而不是锁在物理行记录上。潜台词是,如果访问没有命中索引,也无法使用行锁,将要退化为表锁。)
  • 存储结构上,在InnoDb中.frm文件存储表结构信息,.ibd文件存储数据记录和索引;MyISAM中,.frm文件存储表结构信息,.myd文件存储数据记录,.myi文件存储索引信息。
  • InnoDb是聚集索引,MyISAM是非聚集索引。
  • InnoDb不支持全文索引,MyISAM支持。 在及全文索引领域的查询效率上MyISAM速度更快高;PS:5.7以后的InnoDB支持全文索引了
  • InnoDb支持哈希索引,MyISAM不支持。
  • InnoDB表必须有唯一索引(如主键)(用户没有指定的话会自己找/生产一个隐藏列Row_id来充当默认主键),而Myisam可以没有。

   如何选择

  1.    是否要支持事务,如果要请选择innodb,如果不需要可以考虑MyISAM;
  2.    如果表中绝大多数都只是读查询,可以考虑MyISAM,如果既有读也有写,请使用 InnoDB。

2.  主键、外键和索引的区别 

主键

外键

索引

定义:

唯一标识一条记录,不能有重复的,不允许为空

表的外键是另一表的主键, 外键可以有重复的, 可以是空值

该字段没有重复值,但可以有一个空值

作用:

用来保证数据完整性

用来和其他表建立联系用的

是提高查询排序的速度

个数:

主键只能有一个

一个表可以有多个外键

一个表可以有多个惟一索引

3.聚集索引和非聚集索引的区别

        聚集索引的叶子节点不仅存储列值,也会存储真实的数据行,一张表只能有一个聚集索引,因为物理存储位置只有一个。

        非聚集索引也叫辅助索引,叶子节点存储列值,并且存储主键值。

4.char和vachar的区别

char是定长的,如果实际存储的不够定义的则用空格补齐,如果超过的话,就截断。

vachar的话,是变长的,实际存储的小于定义的话,就按照实际存储的记录,不过如果存储的小于225字节,会占用一个字节存储长度,超过225的话占用两个字节存储长度。

utf-8中一个字符最多占3个字节,utf-8mb4一个字符最多占4个字节

5.int(1)和int(11)的区别

实际存储都是占4个字节,一个字节8位,也就是0~2^32。

区别在于显示的宽度不同。比如存个1,int(1)就显示个1,int(11)它意思是不足11位,会给前面补相应个数的0。

6.mysql核心参数

sync_binlog是MySQL数据库的二进制日志(binary log)同步到磁盘的频率。

sync_binlog=1的话,代表每次提交一次事务都会把日志刷写到磁盘。

innodb_flush_log_at_commit参数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值