MySQL基础知识

数据表引擎

一.数据表引擎类型:innodb、MyISAM、CSV、Memory、Archive、Blockhole.
主流引擎innodb与MyISAM之间区别、联系

  1. innodb
    默认事务型引擎
    数据存储再共享表空间,可通过配置分开
    对主键查询的性能高于其他类型的存储引擎
    内部优化,从磁盘读取数据时自动在内存构建hash索引,插入数据时自动构建插入缓冲区
    通过一些机制和工具支持真正的热备份支持崩溃后的安全恢复,支持行级锁,支持外键。
  2. MyISAM
    5.1版本默认引擎
    又有全文索引、压缩、空间函数
    不支持事务,行级锁,不支持崩溃后安全恢复
    表存储在俩个文件(myd和myi)
    设计简单,某些场景下性能很好

二、char与varchar区别与联系

1.char
是定长的,根据定义的字符串长度分配足量空间,根据需要采用空格进行填充方便比较,适合存储很短的字符串或者所有值都设置同一个长度,长度超过设定的长度,会被截断。
2.varchar
用户存储可变长字符串,比定长类型更加节省空间
使用一个或者俩个额外字节记录字符串的长度,列长度小于255字节用一个字节表示,否者俩个
长度超过设定的长度,会被截断
3.联系
对于经常变更的数据,char比varchar更好,char不容易产生碎片
对于非常短的列,char比varchar在存储空间上更有效率
只分配真正需要的空间,更长的列会消耗更多的内存

三、索引

1.优点
大大减少服务器需要扫描的数据量
帮助服务器避免排序和临时表
将随机I/O变顺序I/O
大大提高查询速度,降低写的速度,占用磁盘空间

2.索引类型
普通索引
主键索引
唯一索引
组合索引
外键索引
全文索引
3.索引创建原则
最适合索引的列是出现在where子句的列,或者连接子句中的列,而不是出现在select的关键字后的列
索引列的基数越大,索引效果越好
对字符串进行索引,应指定一个前缀长度,可以节省大量的索引空间
根据情况创建复合索引,复合索引可以提高查询效率
避免创建过多索引,索引会额外占用磁盘空间,减低写操作效率
主键尽可能选择较短的数据类型,可以有效减少索引的磁盘占用,提高效率
4.索引注意实现
复合索引遵循前缀原则
like查询%不能在前,可以使用全文索引
column is null 可以使用索引
如果估计使用索引比全表扫描更慢,放弃使用索引。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

独宠子沫

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值