1、文件类型
.frm 表结构
.myd 表数据
.myi 表索引
.logbin 主从复制
.errlog 错误日志

2、架构
A、连接层(连接驱动,常用JDBC)
B、服务层(拦截器、分析器、优化器、过滤器)
C、存储引擎(MyIsAm、Innodb)
D、文件服务(磁盘IO操作)

3、数据库查询的执行顺序
from table -> inner/left/right/outer join on -> where -> group by -> having -> select -> order by

4、索引
A、索引类型
主键索引、唯一索引、复合索引、单值索引、覆盖索引
B、索引失效原因
最左原则
不在索引列进行函数、运算、类型转换(自动和手动)操作
范围查询后后字段会索引失效,所以避免在复合索引列前面进行or、in、大小比较,会导致后面索引失效
like的%号开始的模糊查询,我们一般采用覆盖索引来解决like的%号开始的模糊查询索引失效问题
order by 索引字段顺序,以及多字段排序asc、desc混用,要看索引创建的顺序是否一致
group by分组
C、慢查询优化
explain
id 查询的执行顺序(越大越先执行)
select_type 查询类型(普通类型、主查询、子查询)
ref 查询级别 system(系统级)->const(常量)->ref_unique(唯一索引)->ref(非唯一索引)->index(索引)->range(范围)->ALL(全表扫描)
possible_keys 可能用到的索引名称
keys 实际用到的索引名称
rows 读取数据扫描的数据行数
ref 用到的索引的列或常量 const,columnName
Extra 查询用到的条件 Using Temporary(使用临时表)、Using Filesort(使用内排序)、Using Where(使用条件查询)、Using Index(使用索引)
D、慢查询日志
设置配置文件,开启慢查询日志,慢查询日志设置扫描慢查询的时间(默认10s)
使用命令查询慢查询时间或者慢查询次数最多的前多少条数据显示

5、数据库
特点:ACID
原子性:事务里面的操作要么全部执行要么全部回滚。
一致性:事务前后,状态一致。
隔离性:事务的执行环境是独立的,不受事务外的操作所影响。
持久性:事务提交以后,数据永久存储到磁盘,不受系统错误或崩溃的影响。

事务的隔离级别:
读未提交
读已提交
不可重复读
串行化

脏读:A读到B未提交的数据,读到未提交的数据
不可重复读:B在A重复读之间更改了A读取的数据,数据内容不一致
幻读:A读到B操作前后的数据,数据量不一致

6、锁
MyIsAm(偏读的存储引擎、不支持事务)
读锁(共享锁),不阻塞其他进程的读操作,会阻塞写操作
写锁(独享锁),会阻塞其他进程的读写操作,所以该存储引擎适用于偏读的服务
Innodb(适合高并发、支持事务、行级锁)
行锁,不阻塞其他进程的读操作,会阻塞写操作,颗粒度只锁定处理的行(如果where条件没有使用索引可能导致全表扫描,锁住整张表)
表锁
间隙锁:处理数据使用范围,则范围的所有间隙都会上锁,例如select ... where id > 0 and id < 10 for update;就算数据没有id=6的,也无法进行插入操作,或者将其他id更新至该范围中
如何锁定一行
select ... from ...where id = 1 for update;
直到事务提交才解除

7、主从复制
从机slave 从主机master拉取主机的binary log二进制日志文件
slave的IO线程会自动拉取master的binary log文件到slave从机中
slave的SQL线程会自动复制从master拉取的binary log文件数据到中继日志中,然后解析执行sql文件,完成复制

A、配置主机master,server_id = 1,配置从机白名单ip和账号配置,开启主从复制
B、配置从机slave,server_id = 2,配置开启主从复制,主线问题可以关闭同步

MySQL 核心内容的更多相关文章

  1. PHP批量替换MySql数据库中的数据内容(替换MySql数据库内容源码)

    PHP批量替换MySql数据库内容 UTF-8 1.0版 <?php //声明 //1.本源码开发意图:作者在使用一些CMS建站的时候发现很多CMS把网址写入到数据库了,如果换网址,那么就需要更 ...

  2. ES6/ES2015核心内容

    ECMAScript定义了: JS语言语法 – 语法解析规则.关键字.语句.声明.运算符等. 类型 – 布尔型.数字.字符串.对象等. 原型和继承 内建对象和函数的标准库 – JSON.Math.数组 ...

  3. struts2框架的核心内容

     Struts1和Struts2的区别和对比: Action 类: • Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口,而struts2的Ac ...

  4. Mysql插入内容过长(Packet for query is too large)

    原文:Mysql插入内容过长(Packet for query is too large) 这个以前一直没有碰到过,一次性向Mysql数据库插入内容过长的话会出现这个问题,解决办法就是在Mysql配置 ...

  5. 30分钟掌握ES6/ES2015核心内容

    30分钟掌握ES6/ES2015核心内容   ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript ...

  6. 30分钟掌握ES6/ES2015核心内容(下)

    在 30分钟掌握ES6/ES2015核心内容(上)我们讲解了es6最常用的一些语法:let, const, class, extends, super, arrow functions, templa ...

  7. Python编程核心内容之一——Function(函数)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 截至上篇随笔<Python数据结构之四--set(集合)>,Python基础知识也介绍好了.接下来准备干 ...

  8. mysql数据库内容相关操作

    第一:介绍 mysql数据内容的操作主要是: INSERT实现数据的插入 UPDATE实现数据的更新 DLETE实现数据的删除 SELECT实现数据的查询. 第二:增(insert) 1.插入完整的数 ...

  9. Python编程核心内容 ---- Function(函数)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 截至上篇随笔<Python数据结构之四——set(集合)>,Python基础知识也介绍好了.接下来准备干 ...

  10. web手工项目04-测试报告的核心内容-HTTP请求和响应-fiddler工具进行抓包

    回顾 登录功能测试(需求分析(输入分析,处理分析,输出分析),数据构造,编写用例) 测试点设计思路--扩展(相关业务,特殊角度-分支,异常,逆向) 流程图元素与画法(开始/结束,路径,数据,判定,步骤 ...

随机推荐

  1. 你了解 Java 的类加载器吗?

    Java 类加载器(ClassLoader) Java 中的类加载器是用于加载 .class 文件到 JVM 中的组件,它的核心作用是将字节码(.class 文件)加载到内存,并且使它能够被 JVM ...

  2. 全局搜索——Lucene.Net与盘古分词的实现思路

    一.Lucene.Net 1.Lucene.Net介绍: Lucene.Net是一个C#开发的开源全文索引库(自带的有索引管理.分词.查询) Lucene.Net.Index 提供索引管理,词组排序. ...

  3. Java序列化:为何必须实现Serializable并显式指定serialVersionUID?

    结论先行 实现Serializable接口是Java对象序列化的基本前提,没有它JVM会直接拒绝序列化操作. 显式声明serialVersionUID能彻底掌控序列化版本兼容性,避免因类结构微小改动或 ...

  4. 【BUG】未能加载文件或程序集“System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyT

    参考:无法加载文件或程序集System.Runtime.CompilerServices.Unsafe. 问题 我的环境: Visual Studio 2019 出错代码: MSBuildWorksp ...

  5. 历数java虚拟机GC的种种缺点

    Java通过垃圾收集器(Garbage Collection,简称GC)实现自动内存管理,这样可有效减轻Java应用开发人员的负担,也避免了更多内存泄露的风险. 如果你用过C++等需要手动管理内存的语 ...

  6. AT_arc168_e [ARC168E] Subsegments with Large Sums 题解

    题意: \[\begin{aligned} &\text{给定长度为 } n \text{ 的数列 } \{a_i\} \text{ 和两个参数 } k, s \text{,将 } \{a_i ...

  7. 编译原理:中间代码IR

    IR,中间代码(Intermediate Representation,有时也称为Intermediate Code,IC),它是编译器中很重要的一种数据结构.编译器在做完前端工作以后,首先就生成IR ...

  8. B1032 挖掘机技术哪家强

    为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 10 5 的正整数 N,即参赛人数.随后 N ...

  9. Redisson读写锁和分布式锁的项目实践

    问题1:在修改分组时,有短链接正在访问会出现什么问题?怎么解决 假设:现有线程A正在修改短链a的分组gid1为gid2(还未修改成功) 同时有一个线程B获取了短链a分组gid1,要进行统计pv,uv, ...

  10. Web前端入门第 59 问:JavaScript 条件语句中善用 return 让代码更清晰

    条件语句 JS 的条件语句不太多,就 if 和 switch 两个,不过他们的使用方式也可以算是眼花缭乱了. if 语句 if 字面意思:如果 xxx.程序中的用法也是这样,如果条件为真,则执行执行代 ...