千家信息网

MySQL的功能以及性能调优的方法

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,本篇内容主要讲解"MySQL的功能以及性能调优的方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"MySQL的功能以及性能调优的方法"吧!一、多表查询类型
千家信息网最后更新 2024年11月21日MySQL的功能以及性能调优的方法

本篇内容主要讲解"MySQL的功能以及性能调优的方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"MySQL的功能以及性能调优的方法"吧!

一、多表查询类型

外连接:包括LEFT/RIGHT/FULL(全连接MySQL 不支持),至少返回一个表的所有数据

内连接:INNER JOIN ...ON === WHERE

包含 自连接(单个表查询)、等值连接(条件为 = )、 不等值连接(条件 不为 =)

合并查询:通过关键字UNION来实现,将多个SELECT 语句查询多个表合并成一个表!!

二、存储过程

一组SQL 语句当做一个整体来执行(间接的保证了事务的原子性)

三、事务ACID:原子性、一致性、隔离性、持久性

四、事务的问题和隔离等级

1、多线程事务可能会出现:脏读、不可重复读、幻读

2、事务隔离等级:读未提交、读已提交、可重复读、可串行化

五、锁机制

排他锁:FOR UPDATA(悲观锁)

共享锁:LOCK IN SHARE MODE(乐观锁)

六、索引机制

索引优化机制很简单,被制定为索引的列,会提前加载到内存中,(存储方式可以为B树或者哈希等),然后当进行查询的时候,优先跑到内存的索引列去查询,查询到了所对应的行之后,拿到这个行,再去磁盘上的IO查询提取数据。在内存中去匹配条件比在磁盘上当然要快!

1. 按照存储类型分为:B型树索引(InnoDB)、哈希索引(MEMORY)

2.索引种类

0) 普通索引

1)唯一索引(UNION INDEX):限制索引的值必须是唯一的

2)全文索引(FULL TEXT):主要关联在数据类型为:CHAR/VARCHAR/TXET 字段上,以便能查询数据量较大的字符串类型的字段!

3)多列索引:关联多个字段!但只有查询时候使用了第一个字段,多列索引才会被启用!

七、MySQL性能优化

1. 使用索引,但对于不经常被查询的表不要建索引,因为这样反而加重性能!

2. 使用缓存

3. 避免使用 SELECT * (不要查询比需求还多的列)

4. 习惯使用EXPLAIN查看查询语句的执行情况、

5. 使用存储引擎比一条一条执行的语句要快得多!

6. 使用UNION 比 OR 进行多条件 合并查询要快得多!

7. LIKE 效率很低,使用FULL TEXT索引来代替!

8. 选择对的存储引擎:大部分情况下选择默认的InnoDB都是正确的!

9. 慎重设计数据类型

1)更小的通常更好,如果要写入的值很小,就没必要给他们一个很长的数据类型和字长

2)简单的更好:比如整形0、1表示比字符正确、不正确快

3)尽量避免NULL:要设置为NOT NULL(因为会关系到索引的使用,会让索引实效)

10.分区表:当时数据非常庞大的时候,就需要对数据进行分区分表了,不然每次查询的时候都要进行全表查询性能就非常慢!!

11. 视图:将SELECT 语句(可能多表查询非常复杂)的结果存放到临时表中。当需要访问视图的时候,直接访问这个临时表即可!(相当于缓存了)

12. SQL 语句的优化查询!

到此,相信大家对"MySQL的功能以及性能调优的方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0