MySQL物理结构:

MySQL它是通过文件系统对数据进行储存和管理,从物理结构上分为日志文件和数据文件

日志文件:

日志文件记录了数据库操作的信息和一些错误信息,我们常用的日志文件有:错误日志、二进制日志、查询日志、慢查询日志、InnoDB引擎在线 redo日志和中继日志等。

错误日志(err log):

默认是开启状态的,如果是5.5.7版本以后的是无法关闭错误日志,错误日志它记录了运行过程中遇到的所有严重的错误信息,以及MySQL每次启动和关闭的详细信息。

默认的错误日志名称:hostname.err

错误日志所记录的信息我们可以通过log-error和log-warnings来定义,其中log-err是定义是否启用错误日志的功能和错误日志的存储位置,log-warnings是定义是否将警告信息也定义至错误日志中。log_error可以直接定义为文件路径,也可以为ON|OFF;log_warings只能使用1|0来定义开关启动

二进制日志(bin log):

默认是关闭状态,我们需要通过:log-bin=mysql-bin进行开启,其中mysql-bin是bin-log日志文件的basename,bin-log日志文件的默认名称:mysql-bin-000001.log

bin-log它记录了数据库中所有的DDL语句和DML语句,但不包括select语句内容,语句以事件的形式保存,描述了数据的变更顺序,binlog还包括了每个更新语句的执行时间信息,binl-og主要作用是用于恢复数据,因此bin-log对于灾难恢复和备份恢复来说至关重要。

如果是DDL语句则直接记录到bin-log日志,而DML语句必需通过事务提交才能记录到bin-log日志中

bin-log还可以用于MySQL的主从复制

主从复制原理:

 通用查询日志(general query log):

默认是关闭的,由于通用查询日志会记录用户的所有操作,其中还包含增删查改等信息,在并发操作大的环境下会产生大量的信息从而导致不必要的磁盘IO,会影响mysql的性能的。如若不是为了调试数据库的目的建议不要开启查询日志。

慢查询日志(slow query log):

默认是关闭的,需要通过设置:slow_query_log=ON进行开启。记录执行时间超过long_query_time秒的所有查询,便于收集查询时间比较长的SQL语句

MySQL索引:

我们使用索引的目的就是在于:优化查询速度,索引是一种特殊的文件或者叫数据结构(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

索引是在储存引擎中实现的,不同的储存引擎就会使用不同的索引,默认是使用BTREE索引,

索引的分类:

单列索引 (常用)

普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。

唯一索引:索引列中的值必须是唯一的,但是允许为空值,

主键索引:是一种特殊的唯一索引,不允许有空值。

组合索引(常用):

在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合

全文索引:

全文索引,只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引。

索引的使用:

创建索引:

1.CREATE index 索引名 ON 表名(列名(长度))

删除索引:

DROP index 索引名 ON 表名

查看执行计划:

只需在sql语句前加 EXPLAIN

索引的储存结构:

     

MySQL日志及索引的更多相关文章

  1. MySQL学习(一)日志与索引 --- 2019年1月

    1.MySQL的架构 1).连接器 先根据Ip和端口号,用户名和密码,连接MySQL数据库,连接后如果没有下一步动作,连接就处于空闲状态,此时有一个连接超时时间的设置 wait_timeout默认8小 ...

  2. Python进阶----索引原理,mysql常见的索引,索引的使用,索引的优化,不能命中索引的情况,explain执行计划,慢查询和慢日志, 多表联查优化

    Python进阶----索引原理,mysql常见的索引,索引的使用,索引的优化,不能命中索引的情况,explain执行计划,慢查询和慢日志, 多表联查优化 一丶索引原理 什么是索引:       索引 ...

  3. Mysql日志解析

    修改Mysql配置 Mysql配置地址为: C:\Program Files (x86)\MySQL\MySQL Server 5.5 如果无法修改可以把my.ini拷贝出来,修改完后,再拷贝回去! ...

  4. Mysql 日志 (转)

    MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 错误日志 在mysql数据库中,错误日志功能是默认开启的.并且,错误日志无法被禁止.默认情况下,错误日志存储在mys ...

  5. mysql日志 解析

    mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面先介绍二进制日志的作用和使用方法,并利用二 ...

  6. MySQL日志管理

    MySQL日志管理 2013年09月26日 ⁄ MySQL ⁄ 共 14266字 ⁄ 评论数 ⁄ 被围观 , views+ 一.日志类型: MySQL有几个不同的日志文件,可以帮助你找出mysqld内 ...

  7. Mysql日志操作

    Mysql日志 mysql的日志类型:错误日志: -log-err记录mysql服务的启动.运行.停止mysql服务时出现的问题查询日志: -log记录建立的客户端连接和执行的语句慢查询日志: -lo ...

  8. mysql日志详细解析

    MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql ...

  9. MySQL 日志管理详解

    大纲 一.日志分类 二.日志详解 注:MySQL版本,Mysql-5.5.32(不同版本的mysql变量有所不同) 一.日志分类 错误日志 查询日志 慢查询日志 二进制日志 中继日志 事务日志 滚动日 ...

随机推荐

  1. react-native-swiper使用时候的小坑

    react-native版本:0.61.1 react-native-swiper版本:1.5.14 当时第一次使用时候直接粘贴的别人博客的教程代码,只修改了swiper里面的元素,结果发现不能切换, ...

  2. CountDownLatch 部分加载和同时并发业务。

    按顺序部分加载: import java.util.concurrent.CountDownLatch; /** * @Title: ThreadCountDownTest.java * @Descr ...

  3. 由“Sysnative”引发的思考

    在64位的Windows系统中,有个非常神秘的文件夹“Sysnative”,你无法通过Explorer去访问它,甚至你都无法找到它,但它却扮演了一个非常重要的角色.下面我们就来聊聊它. 32位和64位 ...

  4. 如何设置Linux时间

    \(\color{Black}{文/魂皓轩}\) linux系统时钟有两个,一个是硬件时钟,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时钟,是linux系统Kernel时间.当 ...

  5. css3新增属性有哪些?css3中常用的新增属性总结

    css3新增属性有哪些?来提问这个问题的人都应该知道css3是css的升级版本,那么,css3既然是升级版本,自然是会新增一些属性,接下来本篇文章将给大家介绍关于css3中常用的新增属性. 一.css ...

  6. unity3D 自定义公告牌

    前言 有时候我们希望公告牌跟随镜头旋转永远平行面向屏幕,同时跟随镜头缩放缩放大小不变(镜头远离物体,正常物体视觉效果变小,但公告牌视觉大小比例不变),或者跟随镜头缩放变化,本文记录C#脚本的两种实现方 ...

  7. C# 为什么说事件是一种特殊的委托

    很多人说C#的事件是一种特殊的委托,其实并不是,这是对事件的一种误解 C#  事件模型的五个组成部分 1.事件的拥有者 2.事件成员(事件的本身) 3.事件响应者 4.事件处理器:本质上是一种回调方法 ...

  8. ubuntu conda install ERROR missing write permission错误

    报错: ondaIOError: Missing write permissions in: /usr/local/anaconda3 # # You don't appear to have the ...

  9. 【小技巧】在PS中测量图层间的边距

    今天学到了一个小技巧,前端切页面时会很方便,就是测量间距margin的. 在ps中,选中某个图层,然后按住ctrl键,再移动鼠标,就可以出现这个图层距其他元素的边距,这个太方便了.在此记录一下,免的以 ...

  10. 全网最详细的Ceph14.2.5集群部署及配置文件详解,快来看看吧! -- <2>

    部署Ceph集群 Ceph版本选择 Ceph版本来源介绍 Ceph 社区最新版本是 14,而 Ceph 12 是市面用的最广的稳定版本. 第一个 Ceph 版本是 0.1 ,要回溯到 2008 年 1 ...