分享

MySQL数据库优化方案整理

 笑笑兔 2023-09-13

为了保证系统正确性,能够更快速响应请求,需要进行性能优化。比如慢查询,如果遇到并发请求,导致严重后果。数据库常用优化手段分三个层面:SQL索引优化、数据库结构优化、系统硬件优化等。

一、SQL索引优化

1、正确使用索引

索引是数据库中最重要的概念,也是提高数据库性能最有效方法之一。为了提高数据查询效率,就像字典的目录一样,通过目录很快找到相关的内容。

如果,没有索引就会全表扫描,当数据越来越多时,查询效率非常低下。我们应该尽可能使用主键查询,主键不会回表查询。避免在where条件使用!=或者<>操作符,这些符号会导致查询放弃索引,而全表扫描。

2、查询具体字段而不是全部

避免使用select * ,而是查询需要字段,提高查询速度,以及减少网络带宽压力。

3、优化子查询

尽量使用join语句代替子查询,因为子查询是嵌套查询,嵌套查询会创建临时表,临时表的创建和销毁都会占用一定的系统资源。

4、注意查询结果集

我们要小表驱动大表方式查询,如果B表数据小于A表,那么要先查B表再查询A表,sql语句如下:

select name from A where id in (select id from B)

5、不要在列上进行运算操作

列字段上进行运算操作,可能导致查询索引失效。

6、适当增加冗余字段

多表查询导致性能低下,适当添加冗余字段,减少表关联查询,以空间换时间优化策略。

二、数据库表结构优化

1、最小数据长度

数据库越小,它的查询速度越快,表字段设置尽可能的小。比如身份证号,使用char(18)就不要varcar(18)

2、简单数据类型

能用int类型就不要使用varchar类型,int类型比varchar类型查询效率高。

3、尽量不要使用text类型

text类型的查询效率很低,如果必须使用的话,可以将该字段分离到子表,需要的时候通过联合查询。

4、适当分表、分库策略

分表:当一张表的字段非常多时,尝试将大表拆分为更多子表,把使用频率高的字段放入主表,其他放入子表,从而提高查询的效率。

分库:比如将数据库拆分多个数据库,一个用于写入和修改,其他的用于用户查询,这样把一个库的压力,分摊给多个库,从而提高整体数据库效率。

三、硬件优化

MySql对硬件要求主要是:网络、磁盘、内存。

1、磁盘

使用高性能的读写磁盘,比如固态硬盘,这样减少I/O运行时间,提高mysql效率。

磁盘尽量使用多个而不是一个大磁盘,多个小磁盘相当于多个并行运行磁盘。

2、网络

保证网络宽带的畅通是mysql正常运行的基本条件,有条件可以设置多个网卡,提高高峰期mysql服务器效率。

3、内存

MySql服务器内存越大,那么存储和缓存的信息越多,从而提高MySql运行效率。

总结

MySql优化三个方案:SQL和索引优化、数据结构优化、系统硬件优化。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多