MySQL日志及索引
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日志及索引的更多相关文章
- MySQL学习(一)日志与索引 --- 2019年1月
1.MySQL的架构 1).连接器 先根据Ip和端口号,用户名和密码,连接MySQL数据库,连接后如果没有下一步动作,连接就处于空闲状态,此时有一个连接超时时间的设置 wait_timeout默认8小 ...
- Python进阶----索引原理,mysql常见的索引,索引的使用,索引的优化,不能命中索引的情况,explain执行计划,慢查询和慢日志, 多表联查优化
Python进阶----索引原理,mysql常见的索引,索引的使用,索引的优化,不能命中索引的情况,explain执行计划,慢查询和慢日志, 多表联查优化 一丶索引原理 什么是索引: 索引 ...
- Mysql日志解析
修改Mysql配置 Mysql配置地址为: C:\Program Files (x86)\MySQL\MySQL Server 5.5 如果无法修改可以把my.ini拷贝出来,修改完后,再拷贝回去! ...
- Mysql 日志 (转)
MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 错误日志 在mysql数据库中,错误日志功能是默认开启的.并且,错误日志无法被禁止.默认情况下,错误日志存储在mys ...
- mysql日志 解析
mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面先介绍二进制日志的作用和使用方法,并利用二 ...
- MySQL日志管理
MySQL日志管理 2013年09月26日 ⁄ MySQL ⁄ 共 14266字 ⁄ 评论数 ⁄ 被围观 , views+ 一.日志类型: MySQL有几个不同的日志文件,可以帮助你找出mysqld内 ...
- Mysql日志操作
Mysql日志 mysql的日志类型:错误日志: -log-err记录mysql服务的启动.运行.停止mysql服务时出现的问题查询日志: -log记录建立的客户端连接和执行的语句慢查询日志: -lo ...
- mysql日志详细解析
MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql ...
- MySQL 日志管理详解
大纲 一.日志分类 二.日志详解 注:MySQL版本,Mysql-5.5.32(不同版本的mysql变量有所不同) 一.日志分类 错误日志 查询日志 慢查询日志 二进制日志 中继日志 事务日志 滚动日 ...
随机推荐
- 应用八:Vue之在nginx下的部署实践
最近有时间研究了下前端项目如何在nginx服务器下进行部署,折腾了两天总算有所收获,汗~~ 所以就想着写篇文章来总结一下,主要包括以下三个方面: 1.打包好的vue项目如何进行部署. 2.如何反向代理 ...
- 手把手教你用ngrx管理Angular状态
本文将与你一起探讨如何用不可变数据储存的方式进行Angular应用的状态管理 :ngrx/store——Angular的响应式Redux.本文将会完成一个小型简单的Angular应用,最终代码可以在这 ...
- How to parse version range
Now we are making a solution that has to get the package reference. But the version of package refer ...
- SAPI(PHP常见的四种运行模式)
SAPI(Server Application Programming Interface)服务器应用程序编程接口,即PHP与其他应用交互的接口,PHP脚本要执行有很多方式,通过Web服务器,或者直接 ...
- CountDownLatch 部分加载和同时并发业务。
按顺序部分加载: import java.util.concurrent.CountDownLatch; /** * @Title: ThreadCountDownTest.java * @Descr ...
- Java 学习笔记(7)——接口与多态
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...
- CentOS7.6部署k8s环境
CentOS7.6部署k8s环境 测试环境: 节点名称 节点IP 节点功能 K8s-master 10.10.1.10/24 Master.etcd.registry K8s-node-1 10.10 ...
- windows下Qt编译Qtxlsx库和qtxlsx库的使用方法
最近接了个项目,合作的学长让用Qt写,而其中最重要的需求是将数据库的数据写入excel表格中和将excel的数据导入到数据库中,自己查阅了和多资料,最后决定使用qtxlsx开源库来操作excel,在编 ...
- Python4_数据库相关操作
====================================================== 参考链接: PyCharm IDE 链接sqlite.建表.添加.查询数据:https:/ ...
- mysql主从之基于mycat实现读写分离
一 环境 1.1 结构 192.168.132.125 mycat 192.168.132.121 master 192.168.132.122 slave 主从已经配置完成 1.2 安装myca ...