熟悉mysql数据库设计和性能优化_Mysql数据库性能优化
Mysql数据库性能优化,可以从下面三点入手:
数据库设计
SQL语句优化
架构优化
一.数据库设计优化
1.适度的违反范式,适度 遵循三大范式就会带来查询时经常需要join,导致查询效率降低 基于性能要求结合业务,适度的做冗余
2.适度的建立索引
IO(更新操作速度会降低,索引的操作),存储空间
建立索引的规则:
a.索引的字段必须是经常用来作为查询条件的字段
b.所以是多个字段的情况,第一个字段要是经常作为查询条件的
c.索引的字段必须有足够的区分度
3.对表进行水平划分
每年都有10万条数据,将这个表按照年区分建立表 log log_2016 log_2015
4.对表进行垂直划分
字段很长,占用空间较大 检索表的时候就需要进行大量的I/O 将字段独立出一张表跟原表建立1对1的关系
5.选择适当的字段类型
6.文件图片等大文件用硬盘存储,挂载存储,不用数据库,数据库中只存储文件路径
7.外键要表示清楚 实际工作中大部分不会建立外键
8.宁可集中批量操作也不要频繁读写
9.选择合适的引擎
二.SQL优化
1.慢日志,explain
2.避免全表扫描, 考虑在where和order by 的列建立索引
3.尽量避免在where子句中使用null值判断。Where username is null 放弃使用索引进行全表扫描,设计默认值 例如:0
4.尽量避免在where子句中使用!=||<>,放弃索引,走全表扫描 可以使用< ,<=, =, > ,>= ,between ,in会走扫描
5.尽量避免在where字句中使用 or 来连接,放弃扫描 走全表扫描,可以使用union all
6.能用between 实现就不要使用in
7.Like避免使用 %%查询 不会走索引。Abc%会走索引
8.查询的时候尽量不要使用*作为结果列,仅列出需要查询的字段,节省应用服务器的内存
9.在where中,尽量避免做列运算,尽量避免使用函数,不走索引,走全表扫面
10.Join操作 小的结果驱动大的结果
11.分页在基数比较大时,不要用limit 尽量换成 between
12.不要使用rand获取随机条数记录
13.不要使用count(列名)表示多少个不为空 记录 使用count(*,1)整个结果集有多少条记录
14.不要做无谓的排序操作
15.出现了局部变量时,可以强制使用索引 with(index(索引名))
16.尽量避免对字段使用表达式操作 selet 1 from table where num/2=100 num=100*2
17.用exists 代替 in
18.索引并不是越多越好,做好不要超过6个
19.尽量使用数字型字段
20.尽量避免创建临时表
21.尽量避免使用游标,游标操作超过1万条记录 必须考虑改写
22.尽量避免大事务操作,索引优化
三.架构优化
1.数据库参数配置 ,具体更多的优化配置 innodb_buffer_pool_size=5g key_buffer_size
2.合理的硬件资源和操作系统 大部分64位的操作系统 和 64位mysql数据库
3.读写分离 通过mysql的复制机制实现多台机器同步,将数据库的压力分散
熟悉mysql数据库设计和性能优化_Mysql数据库性能优化相关推荐
- MySQL数据库设计与应用答案_MySQL数据库设计与应用知到章节测试答案
工程项目范围变更控制依据不包括().A.施工图B.支付证书C.进度计划D.施千合同 工程项目综合管理的基本理念是().A.沟通B.控制C.实现项目总体目标D.绩效评价 项目经理的职责不包括().A.保 ...
- mysql数据库项目式教程答案_MySQL数据库项目式教程(高职高专国家示范性院校十三五规划教材)...
导语 内容提要 郭水泉.关丽梅.王世刚主编的<MySQL数据库项目式教程(高职高专国家示范性院校十三五规划教材)>详细介绍了如何安装.管理.备份.维护和优化一个MySQL系统.全书分为八个 ...
- mysql数据库sql优化_MySQL 数据库性能优化之SQL优化
注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础 优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据 ...
- MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总!
年少不知优化苦,遇坑方知优化难. --村口王大爷 本文内容导图如下: 我之前有很多文章都在讲性能优化的问题,比如下面这些: 当然,本篇也是关于性能优化的,那性能优化就应该一把梭子吗?还是要符合一些规范 ...
- 事务对性能影响_MySQL数据库性能优化史诗级大总结
点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 大数据真好玩点击右侧关注,大数据真好玩! ...
- mysql开启binlog日志影响性能吗_mysql binlog日志优化及思路
在数据库安装完毕,对于binlog日志参数设置,有一些参数的调整,来满足业务需求或使性能最大化.Mysql日志主要对io性能产生影响,本次主要关注binlog 日志. 查一下二进制日志相关的参数 my ...
- 物联网 mysql数据库优化_MySQL数据库优化大全方法汇总-阿里云开发者社区
随着数据和负载增加,MySQL数据库会日渐缓慢,性能越来越差,用户体验也随之变差,所以数据库性能优化十分紧迫,云吞铺子分享MySQL数据库优化大全: MySQL数据库优化 云吞铺子先模拟一下数据库访问 ...
- MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总
本文内容导图如下: 我之前有很多文章都在讲性能优化的问题,比如下面这些: 当然,本篇也是关于性能优化的,那性能优化就应该一把梭子吗?还是要符合一些规范和原则呢? 所以,在开始之前(MySQL 优化), ...
- mysql解释器优化_MySQL——SQL性能分析优化利器之Explain
系统性能的优劣取决于我们sql的查询速度,MySQL Explain命令是分析SQL性能及优化不可缺少的一部分. Explain被我们称为解释器,通过 explain 我们可以知道以下信息:表的读取顺 ...
最新文章
- mongodb插入文档时不传ObjectId
- 微会动微信现场互动:2019年会展和活动产业的发展趋势
- louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...
- App-V5.0服务器部署
- Mysql数据库备份和按条件导出表数据
- 曲则全,枉则直;洼则盈,敝则新;少则得,多则惑。
- 配置web.xml和glassfish容器实现javaEE表单验证
- java中用单例模式有什么好处
- android捆绑demo_Android捆绑通知
- UTF-8字符集中文排序方法研究
- 面试简历上的项目经验
- 【观察】PowerMax:高端存储,中国制造
- web前端设计与开发期末作品:旅游网站设计——响应式的出国旅游定制(17页) HTML+CSS+JavaScript 旅游网页html 旅游景点html...
- 微信企业号用户验证php,企业号OAuth2.0验证企业用户接口
- 硬币问题(瓜子网二手车试题)
- 百度Java面试题前200页都在这里了
- Log4j 严重漏洞修最新修复方案参考
- 【艾特淘】什么是手淘搜索流量?
- 2022诺贝尔物理学奖:曾背负恶名的贝尔理论与历经10年的探索
- 《Windows内核安全与驱动编程》-第五章阻塞、等待与安全设计
热门文章
- 检测子字符串是否存在于字符串或者变量是否存在于数组中
- 2.AsyncQueryHandler、内容提供者
- 找上海或深圳塑胶模具工作
- empinfo Oracle数据库,Oracle:其他数据库对象
- Python+matplotlib绘制箱线图并设置异常值、中值、均值显示格式
- 手把手教你使用Python+scrapy爬取山东各城市天气预报
- php列表调多图,列表中调用多图显示的文章
- C++ STL容器之string--常用接口
- Linux 冯诺依曼体系结构
- html简单用户登录界面_简单实现 nginx 用户登录认证