本篇内容主要讲解“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的功能以及性能调优的方法”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。