前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL数据库优化总结《高性能MySQL》指导其他指导

MySQL数据库优化总结《高性能MySQL》指导其他指导

作者头像
林万程
发布2018-06-21 17:09:56
1.1K0
发布2018-06-21 17:09:56
举报

《高性能MySQL》指导

性能优化 1.表优化 2.索引优化 3.查询优化 4.服务器优化 5.系统与硬件优化

稳定优化 1.复制 2.可拓展 3.高可用,避免单点失效等 4.云 5.备份恢复

1.表优化 选择合适的数据类型 减少列和关联 反范式冗余 缓存表、计数器表

2.索引优化 索引独立放在符号的一侧 前缀/翻转后缀索引 合适的多列索引顺序 聚簇索引(索引组织表) 覆盖需要返回字段索引 索引排序 压缩 移除冗余和重复索引 (唯一和主键都是索引) 索引减少锁定

3.查询优化 减少访问和返回 多个简单查询以便缓存和短锁 切分减少锁持续 最值加 LIMIT 1 没有 WHERE 的 COUNT() 是直接获得 用 COUNT() - 少数行查询 使用 EXPLAIN 估算 去除 DISTINCT 以避免排序 确保 ON 或 USING 子句上有索引 确保汇总排序只涉及一个表才有可能用索引 MySQL5.5 使用关联查询代替子查询 先LIMIT再关联 返回多一条数据如果没有就不下一页 UNION ALL 以避免自动 DISTINCT

其他指导

or 用 in 代替,或者 UNION ALL 代替后在应用层处理重复数据 GROUP BY确认不需要排序时用ORDER BY NULL 避免多余排序 导入数据前set unique_checks=0导好设1 insert delayed异步合并写入,但宕机丢数据

高速查询 userServerPrepStmts=true cachePrepStmts=true

高速插入(同时用手动提交事务) useServerPrepStmts=false rewriteBatchedStatements=true useCompression=true

join 空分开

代码语言:javascript
复制
select * from a
join b
  on a.k is not null
  and a.k = b.k
union all
select * from a
  where a.k is null
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《高性能MySQL》指导
  • 其他指导
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档