赞
踩
MySQL 调优是必备的技能,从系统层面来看,MySQL 基于磁盘交互,是它的瓶颈所在,大量依赖于可靠性、持久化操作,都需要经过 DB,基于它能有调优能力,能最大化提升自己的竞争力;该博文会从以下几方面来对 MySQL 调优作系统的介绍
存储引擎的选择是经常会被忽视的问题,因为在绝大部分场景下,都不需要指定存储引擎,直接会使用 MySQL 默认的存储引擎:InnoDB
若不作任何设置的话,默认的存储引擎就是 InnoDB,但也可以通过修改配置文件的方式进行修改操作,如:在 /etc/my.cnf
文件追加内容
[mysqld]
default-storage-engine=InnoDB
可以通过以上配置写上存储引擎类型,MySQL 支持的存储引擎如下:
之前在介绍 performance_schema
时,它本身就是一种存储引擎,但是在日常工作中 InnoDB、MyISAM 用的最多,它们两者的区别如下:
MyISAM | InnoDB | |
---|---|---|
索引类型 | 非聚簇索引 | 聚簇索引 |
支持事务 | 否 | 是 |
支持表锁 | 是 | 是 |
支持行锁 | 否 | 是 |
支持外键 | 否 | 是 |
支持全文索引 | 是 | 是(5.6 后支持) |
适合操作类型 | 大量 SELECT | 大量 Insert、Delete、Update |
假设,数据库中有一张文章表,里面存在一个列
content
,代表内容的意思,若在当前表里需要检索出包含 java 关键字的文章,此时可以利用全文索引的方式来进行分词操作,但是在企业里面一般情况下不会使用全文索引处理,当涉及到分词操作时会选择使用 ES.
范式:会遵循第三范式原则设计表结构,不会产生多的冗余列,即都会进行 Join 表查询;反范式:在表中新增冗余列避免多查一张表,现在的主流设计都是 范式+反范式
设计结合使用
范式优点如下:
范式的缺点:必须要进行
表关联查询
反范式优点如下:
当然反范式也有缺点,表内
冗余的字段较多
,删除数据时会造成表有些有用的信息丢失
总结:在企业中为了能够更好的提高整个项目的运行效率,一般情况下范式、反范式是要配合使用的,或者说是混合使用的
一般在设置字符集时都是默认给它指定 utf-8
,若你要存储中文时,不建议设置成 utf-8,因为中文支持的字节数可能是 2 个、3 个、4 个,而 utf-8 只支持 3 个字节存储,因此在进行插入 emoji 表情,如: 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。