优化方面:

  存储层:数据表”存储引擎”选取、字段类型选取、逆范式(3范式)

  设计层:索引、分区/分表

  架构层:分布式部署(主从模式/共享)

  sql语句层:结果一样的情况下,要选择效率高、速度快、节省资源的sql语句执行

熟悉的存储引擎:

  Myisam:持的特性有压缩机制等,mysiam的并发性较比innodb要稍逊色,因为数据表是“表锁”

  Innodb:支持事务、支持行级锁、支持外键,速度比Myisam的要稍慢,并发性高,多人同时请求,速度快、效率高。

  memory:内部数据运行速度非常快,临时存储一些信息,服务器如果断电,就会清空该存储引擎的全部数据

存储引擎

  存储数据格式,不同存储引擎有自己特点

  mysiam

  文件:每个数据表都有三个文件(结构、索引、数据)

  写入存储数据顺序:存储的顺序与写入顺序一致

  并发性:锁机制为“表锁”, 并发性不高

  压缩处理:不频繁发生变化的数据适合做压缩

  innodb

  文件:结构有独立文件,数据与索引合并为一个文件

  写入存储数据顺序:根据主键id值的顺序进行数据存储

  并发性:并发性好,“行锁”

三范式

  字段的原子性,是唯一的,不能再分隔

  每一行都能被唯一的区分,强调一个表要有主键

  与数据库的冗余有关。一个表不能包含其他表的非关键字信息。也就是说你有其他表的主键作为自己的外键,不能再拿人家的其他字段

逆范式

  数据表的总体设计要遵守三范式,但是有的时候为了整体性能的考虑,就不遵守一点,这样就称为“逆范式”

索引

  主键索引(primary key)索引是进行数据库设计的时候,提升性能最有效的一个技术。

  使用索引好处:可以非常快速定位我们需要找到的信息。

  索引为什么速度快:从技术本身的角度看索引,索引就是一种数据结构(寝室大楼),数据结构内部有算法,可以帮组我们快速、准确定位需要的信息。

  执行计划explain:一条sql语句在没有执行之前,先把需要的资源都计划好

  使用到索引:耗费资源少,查询速度快

    没有使用到索引:耗费资源多,查询速度慢

  注意:有的字段重复内容很多(例如性别字段),则不要设置索引,不会起作用。

  索引原则:

    字段独立原则

    左原则

      模糊查询

    复合索引

      单独使用第一个字段作为条件,可以使用

      单独使用第二个字段作为条件,不能使用

      使用全部字段(不用考虑顺序)作为条件,可以使用

    OR原则

        左右都有索引,会合并索引一起使用

        一边有索引、一边没有索引,导致整体都没得索引使用

MySQL优化一 简绍的更多相关文章

  1. SpringCloud(1)生态与简绍

    一:微服务架构简绍学习目标 1.技术架构的演变,怎么一步步到微服务的:2.什么是微服务,优点与缺点  :3.SOA(面向服务)与MicroServices(微服务)的区别 :4.Dubbo 与Spri ...

  2. MySQL优化聊两句

    原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL优化聊两句 MySQL不多介绍,今天聊两句该如何优化以及从哪些方面入手, ...

  3. 0104探究MySQL优化器对索引和JOIN顺序的选择

    转自http://www.jb51.net/article/67007.htm,感谢博主 本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分" ...

  4. mysql 优化

    1.存储过程造数据 CREATE DEFINER=`root`@`localhost` PROCEDURE `generate_test_data`(`n` int) begin declare i ...

  5. mysql优化笔记之分页

    过年闲得蛋疼,于是看看mysql优化,看了网上好多关于分页的优化方法,但是呢,我亲自试上一把的时候,没有出现他们说的现象...难道是我的机器问题么? 下面看看我的实践记录,希望看到的加入进来交流一下O ...

  6. MySQL优化概述

    一. MySQL优化要点 MySQL优化是一门复杂的综合性技术,主要包括: 1 表的设计合理化(符合 3NF,必要时允许数据冗余) 2.1 SQL语句优化(以查询为主) 2.2 适当添加索引(主键索引 ...

  7. MySQL优化实例

    这周就要从泰笛离职了,在公司内部的wiki上,根据公司实际的项目,写了一些mysql的优化方法,供小组里的小伙伴参考下,没想到大家的热情很高,还专门搞了个ppt讲解了一下. 举了三个大家很容易犯错的地 ...

  8. Mysql优化系列(2)--通用化操作梳理

    前面有两篇文章详细介绍了mysql优化举措:Mysql优化系列(0)--总结性梳理Mysql优化系列(1)--Innodb引擎下mysql自身配置优化 下面分类罗列下Mysql性能优化的一些技巧,熟练 ...

  9. mysql优化记录

    老板反应项目的反应越来越慢,叫优化一下,顺便学习总结一下mysql优化. 不同引擎的优化,myisam读的效果好,写的效率差,使用场景 非事务型应用只读类应用空间类应用 Innodb的特性,innod ...

随机推荐

  1. java 事件处理

    Java事件处理机制:EventObject类作为描述事件信息的事件信息类的基类,由EventListener接口派生新的接口或类来作为事件接收方的类,再定义事件源类. 事件信息类的构造方法必须含有事 ...

  2. 微信小程序语音与讯飞语音识别接口(Java)

    项目需求,需要使用讯飞的语音识别接口,将微信小程序上传的录音文件识别成文字返回 而微信小程序上传的文件格式是silk的,而讯飞接口能识别wav 格式的文件,所以需要将小程序上传的silk文件转成wav ...

  3. Scala入门系列(十):函数式编程之集合操作

    1. Scala的集合体系结构 Scala中的集合体系主要包括(结构跟Java相似): Iterable(所有集合trait的根trait) Seq(Range.ArrayBuffer.List等) ...

  4. NOI导刊2010提高装备运输

    www.luogu.org/problem/show?pid=1794 挺裸的一题背包,算很基础. 可以运用的技巧是三维->二维(节省空间还能少敲一点代码 #include<iostrea ...

  5. java基础解析系列(十一)---equals、==和hashcode方法

    java基础解析系列(十一)---equals.==和hashcode方法 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系 ...

  6. 多版本VisualStudio导致的.net版本问题

      写在前面:本博文是在我现有知识状态下写的, 我现在是小白, 有错误欢迎指正. 以后假如接触到更合理的见解, 我一定会修正这篇博文的. 本文原是在我本地笔记中待着的, 写于2016/05/17. 下 ...

  7. struts2捕获action类异常

    首先是STRUTS.XML的配置.重点在于配置文件: <!-- struts2捕获action类异常 -->         <global-results> <resu ...

  8. Struts框架的国际化

    本文将通过一个详细的实例来展示Struts框架的国际化,使用的版本号是struts1.1. 案例:在一个页面上有一个下拉框,下拉框中有3个国家的语言选项,各自是"中文简体".&qu ...

  9. Java后台实现方法

    Java后台实现方法 首先后台结构分为四个部分(以表schedule为例) entity>mapper>service>controller 1. 在entity里面写好实体,新建目 ...

  10. MySQL远程訪问的两个问题

    安装MySQL后,不能远程訪问.进行例如以下配置就可以 连接后,依旧不能连接,报例如以下错误: 1042 - Can't get hostname for your address 解决方法在my.i ...