您的位置:首页 > 数据库 > MySQL

谈Mysql优化技巧?你知道分为几个方向吗?

2020-01-12 14:07 351 查看

我们在之前的文里谈到了mySQL的底层原理,现在我们再来了解下mySQL的优化技巧。说起MySQL的查询优化,相信大家收藏了很多很多,例如不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型…

但是你真的理解这些优化技巧?真的理解其背后的工作原理?在实际场景下性能真有提升吗?

在整个学习中,理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。

mySQL的优化大致分为硬件优化、MySQL参数优化、SQL语句方面的优化、表方面的优化这四类优化方向,九种优化方法为选择最合适的字段属性、尽量把字段设置为NOT NULL、使用连接(JOIN)来代替子查询(Sub-Queries)、使用联合(UNION)来代替手动创建的临时表、事务、锁定表、使用外键、使用索引、优化de的查询语句等方法。

硬件优化:cpu,内存,硬盘等硬件的优化;

MySQL参数优化:设置最大连接数,超过两秒的查询记录下来;

SQL语句方面的优化:修改mysql的慢查询;使用查询缓存优化查询;使用EXPLAIN关键字检测查询;添加索引(主键索引/唯一索引/全文索引/普通索引);

表方面的优化:永远为每张表设置一个ID主键;越小的列会越快;建表符合三范式;选择合适的存储引擎;mysql读写分离;对表进行水平分割;对表进行垂直分割;如果你的数据库的存储引擎是myisam,请一定记住要定时进行碎片整理。

在MySQL的优化方法方法中,一定要记得这几点!

  1. Mysql是一种关系型数据库,可以很好地支持大数据量的存储,但是一般来说,数据库中的表越小,在它上面执行的查询也就越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度舍得尽可能小。

  2. 尽量把字段设置为NOT NULL。在MySQL中,ENUM类型被当做数值型数据来处理,而数值型数据被处理起来的速度要比文本类型要快得多,这样我们又可以提高数据库的性能。

  3. MySQL从4.1开始支持SQL的子查询。这个技术可以使用select语句来创建一个单例的查询结果,然后把这个结果作为过滤条件用在另一个查询中。

  4. 使用union来创建查询的时候,我们只需要用union作为关键字把多个select语句连接起来就可以了,要注意的是所有select语句中的字段数目要相同。

  5. 可以使用子查询、连接和联合来创建查询,但不是所有的数据库都可以只用一条或少数几条就可以完成的,更多的时候是需要用一系列的语句来完成某种工作。

6.在事务执行的过程中,数据库将会被锁定,如果有成千上万的用户同时访问一个数据库系统,,就会产生比较严重的响应延迟,于是可以通过锁定表的方式来获得更好的性能。

7.锁定表的方法可以维护数据的完整性,但是他却不能保证数据的关联性,这时我们可以使用外键。

8.索引是提高数据库性能的常用方法,可以令数据库服务器比没有索引时速度快得多,性能提高更为明显。

  1. 不使用子查询;避免函数索引;用IN来替换OR;禁止不必要的ORDER BY排序;批量INSERT插入。

以上就是关于MySQL的优化技巧,你知道了吗?

  • 点赞
  • 收藏
  • 分享
  • 文章举报
liuxingjiaoyu 发布了57 篇原创文章 · 获赞 2 · 访问量 1228 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: