MySQL数据库优化的几种方式(笔面试必问)

作者平台:

| CSDN:blog.csdn.net/qq_4115394…

| 掘金:juejin.cn/user/651387…

| 知乎:www.zhihu.com/people/1024…

| GitHub:github.com/JiangXia-10…

| 公众号:1024笔记

本文共3929字,预计阅读时间 10分钟

前言

最近跳槽了,前段时间一直在面试有一些问题问到的频率比较高,这里做一些整理和总结,希望能够帮助到也准备找工作的同学。

其中关于数据库的问题问到的频率很高,然后数据库这块尤其关于数据库优化的知识问到的频率更是基本每家公司都会问。所以这里对关于数据库优化的内容总结一下,其中有些是自己平时开发的经验,有些是自己学习的内容。所以如果有不正确的地方欢迎讨论指正!

正文

关于数据库的优化其实不仅仅会在笔面试问的多,也确实是因为在实际的工作中,数据库的优化能够影响到系统的性能,也确实很重要,所以往往都需要写出合理的sql脚本,并且对数据库进行优化。对于数据库的优化主要可以从以下几个方面考虑:

1、选取最适用的字段属性

MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的大小设得尽可能的合理,没有必要都选取最大。

例如,在user表中如果定义了username这个字段的时候将其设置为varchar(255),显然就会给数据库增加了不必要的空间,因为我们知道姓名无论如何都达不到这么长的长度。同样的。

另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为NOTNULL,这样在将来执行查询的时候,数据库不用去比较NULL值。

对于某些文本字段,比如如“性别”,我们可以将它们定义为ENUM类型。因为在MySQL中,ENUM类型被当作数值型数据来处理,而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。

2、合理设计表

对于mysql的表的设计方面最好遵循以下原则:

a、单表的数据量

所有表都需要添加注释,单表数据量建议控制在 3000 万以内;

尽量不保存大字段数据,比如不在数据库中存储图片、文件等大数据;

b、表使用规范

需要拆分大字段和访问频率低的字段,分离冷热数据;

创建数据表的时候,单表字段数尽量控制在20个字段以内;

c、索引规范

创建索引能够大大提高数据的访问效率,但是应该合理创建索引,比如:

1、单张表中索引数量不超过 5 个,并且单个索引中的字段数不超过 5 个;

2、INNODB 主键推荐使用自增列,主键不应该被修

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值