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

《高性能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 空分开

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿

从0学习MySQL系列(三)概念篇

概要 ---- 在篇文章中提过:概念:数据库管理系统(Database Management System)一些语法的汇总点。 ...

2875
来自专栏nummy

python中MySQLdb模块用法实例

MySQLdb提供了connect方法用来和数据库建立连接,接收数个参数,返回连接对象:

521
来自专栏Java Edge

1 SQL查询优化1. 获取有性能问题SQL的方法2.慢查询日志介绍3. 实时获取3.SQL的解析预处理及生成执行计划4 对特定SQL的查询优化

3437
来自专栏java一日一条

理解MySQL——架构与概念

写在前面:最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了。但从5....

422
来自专栏友弟技术工作室

MySQL优化思路及框架

MySQL优化框架 1. SQL语句优化 2. 索引优化 3. 数据库结构优化 4. InnoDB表优化 5. MyISAM表优化 6. Memory表优化 7...

34410
来自专栏存储技术

MySQL加锁范围分析

最近,遇到了一个关于mysql 加锁的问题,将当时的情形简化如下,有一个index_test表,表结构如下所示:

2576
来自专栏潘昌伟的专栏

用好 mysql 分区表

大数据时代,数据量趋于海量,mysql单表很难满足大数据场景的一些统计需求,用好分区表可以很好的解决很大一部分的问题。

1K0
来自专栏MYSQL轻松学

MYSQL RR隔离级别下MVCC及锁解读

MVCC(Multi-Version Concurrent Control):多版本并发控制,只作用于RC和RR隔离级别,主要是为了避免脏读、非重复读,而非幻读...

4038
来自专栏程序你好

MySQL中MyISAM与InnoDB存储的区别

841
来自专栏北京马哥教育

优化临时表使用,SQL语句性能提升100倍

【问题现象】 线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右。 SQL语句如下: SE...

2668

扫码关注云+社区