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数据库性能优化相关推荐

  1. MySQL数据库设计与应用答案_MySQL数据库设计与应用知到章节测试答案

    工程项目范围变更控制依据不包括().A.施工图B.支付证书C.进度计划D.施千合同 工程项目综合管理的基本理念是().A.沟通B.控制C.实现项目总体目标D.绩效评价 项目经理的职责不包括().A.保 ...

  2. mysql数据库项目式教程答案_MySQL数据库项目式教程(高职高专国家示范性院校十三五规划教材)...

    导语 内容提要 郭水泉.关丽梅.王世刚主编的<MySQL数据库项目式教程(高职高专国家示范性院校十三五规划教材)>详细介绍了如何安装.管理.备份.维护和优化一个MySQL系统.全书分为八个 ...

  3. mysql数据库sql优化_MySQL 数据库性能优化之SQL优化

    注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础 优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据 ...

  4. MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总!

    年少不知优化苦,遇坑方知优化难. --村口王大爷 本文内容导图如下: 我之前有很多文章都在讲性能优化的问题,比如下面这些: 当然,本篇也是关于性能优化的,那性能优化就应该一把梭子吗?还是要符合一些规范 ...

  5. 事务对性能影响_MySQL数据库性能优化史诗级大总结

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 大数据真好玩点击右侧关注,大数据真好玩! ...

  6. mysql开启binlog日志影响性能吗_mysql binlog日志优化及思路

    在数据库安装完毕,对于binlog日志参数设置,有一些参数的调整,来满足业务需求或使性能最大化.Mysql日志主要对io性能产生影响,本次主要关注binlog 日志. 查一下二进制日志相关的参数 my ...

  7. 物联网 mysql数据库优化_MySQL数据库优化大全方法汇总-阿里云开发者社区

    随着数据和负载增加,MySQL数据库会日渐缓慢,性能越来越差,用户体验也随之变差,所以数据库性能优化十分紧迫,云吞铺子分享MySQL数据库优化大全: MySQL数据库优化 云吞铺子先模拟一下数据库访问 ...

  8. MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总

    本文内容导图如下: 我之前有很多文章都在讲性能优化的问题,比如下面这些: 当然,本篇也是关于性能优化的,那性能优化就应该一把梭子吗?还是要符合一些规范和原则呢? 所以,在开始之前(MySQL 优化), ...

  9. mysql解释器优化_MySQL——SQL性能分析优化利器之Explain

    系统性能的优劣取决于我们sql的查询速度,MySQL Explain命令是分析SQL性能及优化不可缺少的一部分. Explain被我们称为解释器,通过 explain 我们可以知道以下信息:表的读取顺 ...

最新文章

  1. mongodb插入文档时不传ObjectId
  2. 微会动微信现场互动:2019年会展和活动产业的发展趋势
  3. louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...
  4. App-V5.0服务器部署
  5. Mysql数据库备份和按条件导出表数据
  6. 曲则全,枉则直;洼则盈,敝则新;少则得,多则惑。
  7. 配置web.xml和glassfish容器实现javaEE表单验证
  8. java中用单例模式有什么好处
  9. android捆绑demo_Android捆绑通知
  10. UTF-8字符集中文排序方法研究
  11. 面试简历上的项目经验
  12. 【观察】PowerMax:高端存储,中国制造
  13. web前端设计与开发期末作品:旅游网站设计——响应式的出国旅游定制(17页) HTML+CSS+JavaScript 旅游网页html 旅游景点html...
  14. 微信企业号用户验证php,企业号OAuth2.0验证企业用户接口
  15. 硬币问题(瓜子网二手车试题)
  16. 百度Java面试题前200页都在这里了
  17. Log4j 严重漏洞修最新修复方案参考
  18. 【艾特淘】什么是手淘搜索流量?
  19. 2022诺贝尔物理学奖:曾背负恶名的贝尔理论与历经10年的探索
  20. 《Windows内核安全与驱动编程》-第五章阻塞、等待与安全设计

热门文章

  1. 检测子字符串是否存在于字符串或者变量是否存在于数组中
  2. 2.AsyncQueryHandler、内容提供者
  3. 找上海或深圳塑胶模具工作
  4. empinfo Oracle数据库,Oracle:其他数据库对象
  5. Python+matplotlib绘制箱线图并设置异常值、中值、均值显示格式
  6. 手把手教你使用Python+scrapy爬取山东各城市天气预报
  7. php列表调多图,列表中调用多图显示的文章
  8. C++ STL容器之string--常用接口
  9. Linux 冯诺依曼体系结构
  10. html简单用户登录界面_简单实现 nginx 用户登录认证