搜索
简帛阁>技术文章>MySQL精华笔记

MySQL精华笔记

1、mysql分为 server 层和存储引擎;
server 层:
1、连接器:管理连接权限验证
2、查询缓存:命中缓存直接换回查询结果
3、分析器:分析语法
4、优化器:生成执行计划,选择索引
5、执行器:操作索引返回结果
存储引擎:
负责数据的存储和提取,其架构是插件式的(不同存储引擎的数据调用不同存储引擎接口);5.5.5版本的默认存储引擎为 innodb
innoDB:事物、外键、聚集索引,不支持全文索引,数据存储是一个文件
MyISAM:不支持事物 不支持外键,非聚集索引,数据存储是多个文件(索引文件、表结构文件、数据文件)
Memory:数据存储在内存中
2、mysql 的执行过程:
1、连接器连接:连接器默认的空闲连接时长为8小时,由 wait_timeout 参数控制
2、查询缓存:select SQL_CACHE * from table where xxx=xxx
3、分析器:分析语法
4、优化器:选择索引
5、执行器:调用存储引擎的接口
3、mysql 日志
redolog:innodb 日志(重做日志)
binlog:server层日志 (归档日志)固定大小:后面日志覆盖前面的日志
4、mysql 更新操作流程:
读数据到内存-->更新数据-->写redolog-->redolog状态为prepare-->写binlog日志-->提交事物-->redolog状态为commit
5、事物隔离级别:
脏读:事物A读取了事物B更新的数据,B回滚,那么事物A读到的数据是脏数据
不可重复读:事物A多次读取同一数据,事物B对数据做了更新并提交,导致A读取到的数据不一致
幻读:事物A在修改所有数据完成后,事物B又新增了一条数据,A发现还有一条数据没修改,感觉有幻觉一样。
小结:不可重复读侧重点是一条数据,幻读是整个表

四种事务隔离级别:
1、读末提交
2、不可重复读
3、可重复读 (Repeatable read)默认事务隔离
4、串行化
6、索引的数据结构:
哈希表:适用于等值场景
有序数组:适用于等值场景和范围查询场景,有序数组索引的更新代价大,最好用于静态数据表
搜索树:搜索效率稳定,不会出现大幅波动,而且基于索引的顺序扫描时,也可以利用双向指针快速左右移动,效率非常高
跳表:优化过的哈希索引

innoDB分为主键索引和非主键索引(二级索引),主键索引保存了该行的全部信息,二级索引保存了该行数据的主键
7、count(*)的效率问题
count(*)=count(1)>count(id)>count(字段)
8、慢查询日志:
SHOW VARIABLES LIKE '%slow_query_log%';#查看慢查询日志是否开启
SET GLOBAL slow_query_log=1;#开启慢查询日志 (临时设置 my.cnf里面是永久设置)


change_buffer
sort_buffer
join_buffer

1、mysql分为server层和存储引擎;server层:1、连接器:管理连接权限验证2、查询缓存:命中缓存直接换回查询结果3、分析器:分析语法4、优化器:生成执行计划,选择索引5、执行器:操作索
一、连接MYSQL。格式:mysqlh主机地址u用户名-p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysqlurootp,回车后提示你输密
MySQL下载官网:https://wwwmysqlcom/下载地址:https://devmysqlcom/downloads/mysql/下载普通的包mysql8026winx64zip200M左
转自:http://snailxriteyecom/blog/1143508Mysql中的Null逻辑比较中如果出现null整个值就是null,如select2null返回为null如果要查找为nu
DBMS,SQL,DB三者的关系DBMS:数据库管理系统SQL:用于访问和处理数据库的标准的计算机语言DB:数据库三者的关系:DBMS数据库管理系统执行SQL语句,来操作DB数据库当中的数据的关于in
单引号(')或双引号主要用于字符串的引用符号如:mysql>SELECT'hello','hello','hello','hel''lo','/'hello';数据库、表、索引、列和别名用的是
0配置环境首先先在docker配置一个数据库的环境dockerpullmysql:571建立容器dockerrunnamemysql001eMYSQL_ROOT_PASSWORD123456p3306
索引分类:单值索引:一个索引只包含一个列,一个表可以有多个单值索引唯一索引:索引列的值必须唯一,但允许空值复合索引:一个索引包含多列索引语法:CREATE[UNIQUE]INDEXindexNameO
sql语句执行顺序:FROM、ON、JOIN、GROUPBY、HAVING、SELECT、DISTINCT、ORDERBY、LIMIT按时间段分组:按天分组selectdate_format(PayT
1、登录到MySQLMySQL服务已经运行时,我们可以通过MySQL自带的客户端工具登录到MySQL数据库中,首先打开命令提示符,输入以下格式的命名:mysqlh主机名u用户名ph:该命令用于指定客