一。数据库设计方面

1)遵循数据库设计三大范式 ,适当的进行反范式设计

第一范式:1NF 原子性 字段不能再拆分

第二范式: 2NF 先满足第一范式 主键之外的要完全依赖于主键,消除了部分依赖

第三范式 :3NF 先满足第二范式 完全消除传递依赖

反范式设计:允许部分冗余字段,目的为了避免多表查询,提高查询速度

优点:查询速度快      缺点:冗余字段多维护起来成本高

范式优点:方便维护    缺点:查询速度不如反范式

2)设计字段的时候尽可能使用小的字段,比如varchar  tinyint

3)选择合适的mysql引擎  两个引擎的区别(重点)

1>存储类型的区别 myisam frm 表结构文件 myd数据文件 myi索引文件      innodb  frm  ibd 数据索引共用一个表空间

2>myisam读的效率高,不支持事务  表锁    innodb支持事务  支持行锁

一般数据是插入和查询使用myisam引擎 ,删除和修改使用innodb引擎

3>mysql5.5以后默认引擎是innodb

4>mysql5.7以后innodb支持全文索引   之前版本不支持

事务:(acid特性)

原子性  一致性  隔离性  持久性

四个隔离级别:读未提交(脏读)     读提交(不可重复读)   重复读(幻读)   序列化(解决幻读  脏读 不可重复读 但是消耗比较大,一般不用)

4)数据表 可以加数据库名为前缀  我们的字段可以加数据表名为前缀,字段起名要有意义,可以使用简称

二。sql语句的优化

1)可以适当的添加索引 但是要注意引起索引失效的几种情况

1>like条件 模糊查询 两个%会导致索引失效

解决方法:只要保证左边没有%号即可

2>索引字段不要使用运算及函数

3>设计表字段的时候  类型是字符串  走索引      如果是int类型   不走索引

4>最左原则 查询过程中条件必须包含最左的一个,否则索引失效

5>避免使用or 否则索引失效

2)开启慢查询

我们不断的在执行sql语句  记录下查询时间超过2秒或者指定时间的sql语句  将这些sql语句写入日志  接下来我们对日志文件中的sql语句  进行 explain 或者 desc分析

slow_query_log=on                开启慢查询

slow_query_log_file=slow.log    查询超过2秒的sql语句  记录到这里

long_query_time=1                记录查询超过1秒的sql语句

log_queries_not_using_indexes     记录查询没有使用到索引的sql语句

3)2000条数据是个界限  2000条范围之内  不用添加索引

4)如果数据量大,不要在sql语句上进行复杂的逻辑运算,避免使用视图 触发器 存储

5)多表联合查询  尽量避免嵌套查询  in   尽量使用inner join  左连接  右链接

三。架构方面的优化(了解知道)

1>采用分布式 读写分离

2>大表可以 使用 分库分表 (横向分表 纵向分表)

3>mysql分区  物理形态上分成五个分区 对于用户来讲 还是当成一张表来对待 再创建表的时候进行分区

4>大型的数据采用数据库中间件  帮你解决数据库数据导入备份  分表分区监控

东方通   360  百度

5>使用redis 进行数据库的缓存  减轻mysql 的压力   提高查询的速度

四。硬件方面的优化

1>使用固态硬盘

2>增加带宽

3>增加内存

4>扩充 数据库服务器的数量

补充说明:*视图 也叫临时表  把经常通过where条件查询的数据放到临时表中 下次 直接从临时表读取 避免过多的损耗数据库

*mysql 存储 存储代码段 经常用它 批量插入数据

mysql触发器 一般用于 表备份  如果一张表 发生修改  同时将修改的内容同步到 另外一张表中

mysql优化有哪些着手点_mysql的优化总结相关推荐

  1. mysql执行计划中 性能最好_MySQL性能优化-explain执行计划

    explain用于获取查询执行计划信息, 一.语法 只需要在select前加上explain即可,如: mysql> explain select 1; +----+-------------+ ...

  2. mysql所有班级名称和人数_mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...

    mysql数据库优化课程---12.mysql嵌套和链接查询(查询user表中存在的所有班级的信息?) 一.总结 一句话总结: in:distinct:select * from class wher ...

  3. mysql 重复率高字段 索引_MySQL性能优化(二)索引优化

    一.选择合适的列建立索引 1.在where从句,group by从句,order by从句,on从句中出现的列(select) 2.索引字段越小越好(表每页数据才会更多,IO效率会更高) 3.离散度大 ...

  4. mysql cluster 查看最大索引数_MySQL 数据库优化,看这篇就够了

    3.优化表:使用OPTIMIZE关键字,如OPTIMIZE [LOCAL|NO_WRITE_TO_BINLOG] TABLE user; LOCAL|NO_WRITE_TO_BINLOG都是表示不写入 ...

  5. mysql第二条减第一条_Mysql SQL优化

    SQL优化规则 第一条: 尽量全值匹配,也就是说尽量使用等于 第二条: 最佳左前缀原则 如果是复合索引,要遵守最佳左前缀原则,指的是从最左侧列开始并且不跳过索引中的列 如果是按顺序使用的索引列,且有最 ...

  6. mysql属性配置提高查询_MYSQL性能优化-安装时优化参数配置提高服务性能

    MYSQL性能优化一直是个头痛的问题,目前大多都是直接把页面html静态页面或直接使用了缓存技术,下面我就mysql本身的性能优化来分享一下. 安装时优化参数配置提高服务性能 在Linux下安装Mys ...

  7. 8核32g mysql性能_MySQL性能优化之参数配置

    1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...

  8. mysql的索引优化_MySQL索引优化与分析(重要)

    建表SQL CREATE TABLE staffs ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR (24) NULL DEFAULT '' COM ...

  9. mysql sql优化书籍_MySQL SQL优化的正确姿势

    大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 已经很久没写文章了 今天分享一篇优化SQL 案例 slow query 里有如下 SQL 看下执行计划如下 从执行计划可以看出C表全表扫描了 那 ...

最新文章

  1. boot数据加解密 spring_SpringBoot 集成 Jasypt 对数据库加密以及踩坑
  2. Selenium3自动化测试——11. 下拉框处理
  3. python 断点下载_python多进程断点续传分片下载器
  4. esp8266 SDK开发之编译流程
  5. python 用队列实现栈
  6. Beanstalkd工作队列
  7. @ExceptionHandler
  8. java8 日期api_我们多么想要新的Java日期/时间API?
  9. 地平线机器人_地平线机器人CEO余凯:基于深度学习的自动驾驶之路
  10. SQL查询数据库结构信息
  11. matlab+text+extent,MATLAB字体及特殊符号标示方法
  12. Windows开机自动启动Virtual Box虚拟机(官方指南手册)
  13. c语言创建空顺序表的程序,用C语言编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算。...
  14. session cookie区别 客户端存储
  15. 2012年7月19日 解一元二次方程
  16. 演示:取证分析IPV6组播地址的构成原理
  17. 东北大学《传输原理》随堂练习
  18. matlab中minigrid,[转载][转载]matlab画地图的工具:worldmap和m_map
  19. Elasticsearch的安装,以及Springboot整合Elasticsearch
  20. 全功能Python测试框架:pytest

热门文章

  1. c c 语言编程项目实例,实例分享cmake编译一个简单c++项目(demo)
  2. nor flash和nand flash
  3. php mysql 字段自增_MySQL自增字段取值的详细介绍(附代码)
  4. MCGS 无限配方数据存储及U盘导入导出-第二集
  5. 鸿蒙硬件HI3861-I2C-PCF8591
  6. 异常检测1——python使用KNN模型进行异常检测
  7. java中的位移运算符_Java 位移运算符
  8. email 添加附件 java_Java发送email 带附件 | 学步园
  9. Codeforces 446C. DZY Loves Fibonacci Numbers【斐波那契+线段树】
  10. 测试Word2013发布博客