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 可以使用索引
如果估计使用索引比全表扫描更慢,放弃使用索引。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页