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. CSP - J理论(1)

    CSP-J理论(1) CSP-J理论合集跳转 目录 本目录中所有标题单击均可以快速跳转哦 一.排列组合与概率 $\ \ \ \ \ $1.排列 $\ \ \ \ \ $2.组合 $\ \ \ \ \ ...

  2. jmeter性能测试案例:电商系统并发订单测试

    场景描述:本案例主要实现多用户同时提交订单,以检测系统对瞬时压力的响应情况.具体流程包括用户登录-添加商品-提交订单.涉及多个接口联动和参数处理,步骤如下: 第一步,登录用户 1.新建"下订 ...

  3. mac系统安装GNU-sed

    经过网上查资料,发现 由于 mac 系统与 linux 系统的差异,mac自带的sed命令,因为其是基于bsd,所以与常用的gnu不一样,安装gnu-sed 可正常使用: 1.brew install ...

  4. NetSpectre:通过网络读取任意内存

    摘要 推测执行是现代处理器能够实现高性能的一个关键因素.在推测执行过程中,处理器可能会执行程序一般不会执行到的操作.如果推测执行被中止,这些操作对体系结构的影响和结果会被丢弃,但对微架构的影响可能会保 ...

  5. 最火向量数据库Milvus安装使用一条龙!

    向量数据库是大模型应用开发必备组件之一,因为它在知识库.语义搜索.检索增强生成(RAG)等人工智能应用中发挥着举足轻重的作用.但向量数据有很多,为什么要使用 Milvus 呢? 常见向量数据 常见的向 ...

  6. Python—Pytorch学习-RNN(一)

    前言 有好几个月没搞神经网络代码了,期间也就是回顾了两边之前的文字. 不料,对nn,cnn的理解反而更深入了-_-!. 修改 <零基础学习人工智能-Python-Pytorch学习(四)> ...

  7. Maven版本号管理规范:为何父POM是统一依赖版本的最佳实践?

    结论先行 在Maven多模块项目中,依赖的版本号应集中定义在父POM的<dependencyManagement>中,子模块通过继承父POM来引用版本号,通常无需在子POM中重复声明.这能 ...

  8. eclipse中那些难以分辨的符号、Java中的Long和mysql中的bigint

    这是一个字符串 从左到右依次是数字"0", 大写字母"O",小写字母"o",数字"1",小写字母"l(艾欧)& ...

  9. TensorFlow 基础 (02)

    前面对 tensorflow 的基础数据类型, 数值, 字符串, 布尔等, 有初步认识,尤其是重点的 tensor 张量, 包含了, 标量, 向量, 矩阵 ... 这样的基本概念. 我现在回过头来看, ...

  10. CTP报单业务介绍

    程序化登录信息 客户如果需要调用API介入柜台进行程序化交易,登录时需要一些基本信息,如下: 1.BrokerID 简称期货编码,是在该期货公司在CTP系统上的编码,为四位数,例如海通期货是8000 ...