前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 的性能优化

MySQL 的性能优化

作者头像
玖柒的小窝
修改2021-09-22 10:55:12
6020
修改2021-09-22 10:55:12
举报
文章被收录于专栏:各类技术文章~各类技术文章~

为搜索字段创建索引。避免使用 select *,列出需要查询的字段。垂直分割分表。选择正确的存储引擎。

? ? 1.索引优化

? ? 2.添加查询缓存

? ? 3.优化数据库SQL语句

? ? 4.数据库Cluster

? ? 1>首先,开启慢查询global【配置文件】,(标准可以自定义),通过分析日志文件或直接show,查看哪些查询较慢.

? ? 2>针对这条sql,添加Explain,查看其执行计划,查询数据条数/索引等

? ? ? ? 优化:

? ? ? ? 1.创建index索引,会占用存储空间,而且会降低DML操作的效率(做增删改需要维护索引),一般在sql中的where或者order by字段建立索引

? ? ? ? 2.通过查询缓存,可以开启Mybatis的二级缓存,自定义实现Mybatis+redis/Ehcache结合,需要注意的是,只对结果缓存,缓存结果要放在以业务逻辑相关为划分单位。缓存原则是对那些查询需求远大于增删改需求的数据

? ? ? ? 除此之外,尽量不要在where子句中使用函数,会使索引失效

? ? ? ? 如果已经确定查询结果只有一条数据(当表中数据的该字段是唯一的),在查询SQL末尾增加 limit 1

? ? ? ? 模糊查询尽量使用右模糊,左模糊会使索引失效

? ? ? ? 如果非要使用表连接,最好要保证连接的两个字段都是创建了索引的

? ? ? ? 避免使用select *

? ? ? ? 尽量使用非空 ?not null,可以使用‘’空串代替null。因为‘’不占用空间,null会占用空间的

? ? ? ? 在SQL语句中不要有运算,否则MySQL会放弃索引。

? ? ? ? 对于百万级以上的表数据,如果要做表连接查询,一定要对表先分页,然后对分页结果再做表连接。也可以不用表连接

? ? ? ? nginx(负载均衡) ?读写分离(MyCat) 主从复制(修改配置文件)

本文系外文翻译,前往查看

如有侵权,请联系?cloudcommunity@tencent.com?删除。

本文系外文翻译前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com