MySQL性能优化小结
数据库设计和查询优化
- Schema设计时主要考虑:标准化,数据类型,索引.
- 一个数据库设计可以混合使用,一部分表格标准化,一部分表格非标准化.(非标准化表格适当冗余)
-
最优的数据类型,使表在磁盘上占据的空间尽可能小,读写快,占用内存少.(索引也尽量建立在较小的列上)
-
正确索引,提高Select,Update,Delete性能.
-
不同的Sql不同的优化方案
-
Explain Sql查看结果,分析查询.
-
查询使用匹配的类型.
-
使用long-slow-queries记录较慢查询,分析优化.
-
服务器端优化
-
安装适当的MySql版本. 如果服务器使用Intel处理器,使用Intel C++版本可提高30 %效率
-
配置优化. 常见优化项:
-
charset
-
max_allowed_packet
-
max_connections
-
table_cache_size
-
query_cache_size
-
存储引擎优化
-
MyISAM
-
引擎特点
-
不支持事务,提供高速存储,检索以及全文搜索能力.
-
宕机会破坏表.
-
使用的磁盘和内存空间小.
-
基于表的锁,并发更新数据会出现严重性能问题.
-
MySql只缓存索引,数据由OS缓存.
-
-
使用情况
-
日志系统.
-
只读操作或者大部分读操作.
-
全表扫描.
-
批量导入数据.
-
没有事务的低并发读写.
-
-
优化策略
-
NOT NULL,可以减少磁盘存储.
-
Optimize Table,碎片整理,回收空闲空间.
-
Deleting/updating/adding大量数据的时候禁止使用index.
-
参数优化,key_buffer_size_variable索引缓存设置.
-
避免并发Inset Update.
-
-
-
InnoDB
-
引擎特点
-
具有提交,回滚和崩溃恢复能力的事务安全存储引擎.
-
处理巨大数据量性能卓越,它的CPU使用效率非常高.
-
需要更多的内存和磁盘存储空间.
-
数据和索引都缓存在内存中.
-
-
适用情况
-
需要事务的应用.
-
高并发的应用.
-
自动恢复.
-
较快速的基于主键的操作.
-
-
优化策略
-
尽量使用short,integer的主键.
-
使用prefix keys,因为InnoDB没有key压缩功能.
-
参数优化,innodb_buffer_pool_size,innodb_data_home_dir等等.
-
-
缓存优化
-
Redis
-
Memcached
转自: http://overtrue.me/articles/2014/10/mysql-performance-optimization-summary.html
原文地址:https://segmentfault.com/a/1190000009890343
相关推荐
-
一文读懂数据库索引原理及优化 服务器
2019-8-21
-
解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止【后台运行程序】 服务器
2019-3-11
-
Centos7+LVS-DR+Apache负载均衡web实验 服务器
2019-7-23
-
腾讯 Tars 开源 Go 版本 Tars-Go,并发性能比 gRPC 高 5 倍 服务器
2020-6-22
-
CSS 渲染原理以及优化策略 服务器
2020-6-28
-
❖ 进入IRC的世界 服务器
2019-10-13
-
解密七牛云锐智转码技术:打造低成本、超高清的解决方案 服务器
2019-7-7
-
Azure: 给 ubuntu 虚机挂载数据盘 服务器
2019-5-11
-
Mac 简单易用的清理大文件方法 服务器
2019-10-13
-
Knative 基本功能深入剖析:Knative Serving 之服务路由管理 服务器
2019-9-16