![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 77
大唐雨夜
这个作者很懒,什么都没留下…
展开
-
MySQL索引优化
InnoDB索引有聚簇索引和辅助索引。对于MySQL,NULL是一个特殊值,处理方式与其他值不同,不能使用=等运算符,对NULL做算术运算的结果还是NULL,count该字段时不会包括NULL等,NULL比空字符需要更多的存储空间。MySQL可以在含有NULL的列上使用索引(复合索引也可以),但是NULL和其他数据有区别,不建议列上使用NULL,建议给默认值0,空串。复合索引使用时遵循最左前缀原则,就是最左优先,即查询中使用到最左边的列,那么查询就会使用到索引,如果从索引的第二列开始查找,索引将失效。原创 2022-10-31 07:30:00 · 410 阅读 · 0 评论 -
explain执行计划详解
explain执行计划分析,是SQL优化的重要手段。id表示查询中执行 select 子句或操作表的顺序。id的执行顺序规则:id相同id不同下图中,age是普通索引,age=18时,表中有多条数据,访问类型为all,没有走索引;当age=22,表中只有一条数据时,访问是ref。表示查询时可能使用到的索引,并不是真正用到。表示查询时真正使用到的索引,显示索引字段名称。查询优化器根据统计信息估算查询到结果需要扫描多少行数据。rows越少效率越高。查询使用了索引的字节数据量。可以判断是否全部使用了组合索原创 2022-10-24 08:00:00 · 507 阅读 · 0 评论 -
MySQL索引原理
索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下:从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引从应用层次划分:普通索引、唯一索引、主键索引、复合索引从索引键值类型划分:主键索引、辅助索引(二级索引)从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)原创 2022-10-19 08:13:29 · 239 阅读 · 0 评论 -
MySQL的三种日志文件
InnoDB有三种重要的日志文件:undo log,redo log,bin log。原创 2022-10-16 20:46:00 · 1431 阅读 · 0 评论 -
MySQL架构原理4 InnoDB存储引擎结构(了解)
Iru list:表示正在使用的缓冲区,管理clean page和dirty page,缓冲区以midpoint为基点,前面链表称为new列表区,存放经常访问的数据,占63%;改性LRU:链表分为new和old两个部分,加入元素时并不是从表头插入,而是从中间midpoint位置插入,如果数据很快被访问,那么page就会向new列表头部移动,如果数据没有被访问,会逐步向old尾部移动,等待淘汰。dirty page:脏页,被使用age,数据被修改过,页中数据和磁盘的数据产生了不一致。原创 2022-10-14 07:45:00 · 529 阅读 · 0 评论 -
MySQL架构原理之存储引擎
是否需要事务?有,InnoDB是否存在并发修改?有,InnoDB是否追求快速查询,且数据修改少?是,MyISAM在绝大多数情况下,推荐使用InnoDB。原创 2022-10-11 22:53:05 · 116 阅读 · 0 评论 -
MySQL架构原理之执行机制
查询执行引擎负责执行SQL语句,此时会根据SQL语句中表的存储引擎类型,以及对应的API接口与底层存储引擎存或者物理文件的交互,得到查询结果并返回给客户端。如果采用查询缓存,MySQL就需要花费很大精力维持查询缓存数据的一致性,并发高时影响性能。毕竟数据库资源更加真贵。解析器(Parser)将客户端发送的SQL进行语法解析,生成“解析树“。检查“解析树“是否合法,例如这里将检查数据表和数据列是否存在,还会解析名字和别名,看看它们是否有歧。划,可以分为两类:静态优化(编译时优化)、动态优化(运行时优化)。原创 2022-10-10 07:30:00 · 269 阅读 · 0 评论 -
MySQL架构原理之体系架构
MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。原创 2022-10-10 07:30:00 · 257 阅读 · 0 评论 -
MySQL之事务隔离级别案例理解
一、事务的ACID特性正如我们所知,事务有着ACID四个特性,分别为: 1. 原子性(atomicity) 一个事务被视为是一个不可分割的最小工作单元,事务中的语句,要么全部提交成功,要么全部失败回滚。 2. 一致性(consistency) 数据库总是从一个一致性状态转换成另外一个一致性的状态。事务没有提交,事务中做出的修改就不会保存到数据库中。 3. 隔离性(isolation)...原创 2018-08-12 13:31:33 · 166 阅读 · 0 评论 -
MySQL入门学习笔记之五
存储过程 存储过程是为以后的使用而保存的一条或多条MySQL语句的集合。可以视为批文件。为什么使用1 封装子容易使用的单元中,简化复杂的操作 2 不需要反复建立操作,保证数据的完整性 3 安全性—业务修改时只需修改存储过程的代码 4 提高性能—运行比基本SQL语句快缺陷: 1 存储过程的编写比基本SQL语句复杂 2 可能没有创建存储过程的安全访问权限。使用存储过程执行存储过程—CAL原创 2017-05-04 15:34:33 · 658 阅读 · 0 评论 -
MySQL入门学习笔记之三
使用子查询使用子查询进行过滤子查询从内向外处理SELECT cust_idFROM ordersWHERE order_num IN(SELECT order_num FROM orderitems WHERE prod_id = 'TNT2';作为计算字段使用子查询orders表 customers表SELECT原创 2017-05-01 19:35:47 · 496 阅读 · 0 评论 -
MySQL入门学习笔记之二
创建计算字段拼接字段将多个列值联结构成单个值。SELECT Concat(vend_name, ' (', vend_country, ')') FROM vendorsORDER BY vend_name;RTrim():去掉串右边的空格 LTrim():去掉串左边的空格 Trim():去掉串左右两边的空格SELECT Concat(RTrim(vend_na原创 2017-04-30 19:27:15 · 495 阅读 · 0 评论 -
MySQL入门学习笔记之四
插入数据插入完整的行INSERT INTO customersVALUES(NULL, // 第一行是主键列 'LZP', 'CN', NULL);不安全,尽量避免使用。INSERT INTO customers(cust_name,cust_address,cuss_city)VALUES('PEP','LOS','CA')原创 2017-05-04 08:38:43 · 558 阅读 · 0 评论 -
MySQL入门学习笔记之一
数据库数据库:保存有组织的数据的容器(通常是一个文件或一组文件)。表:某种特定类型数据的结构化清单。模式(schema):关于数据库和表的布局以及特性的信息。列:字段数据类型:每个表列都有相应的数据类型,限制该列存储的数据。行:表中记录主键(primary key):某一列,唯一区分表中的每一行。SQL:结构化查询语言使用MySQL基于客户机-服务器连接MySQL:主机名、端口、用户名、密码使用数据原创 2017-04-28 14:41:46 · 528 阅读 · 0 评论 -
CentOS 7.6安装MariaDB10.4.8超详细教程
CentOS 7.6安装MariaDB10.4.8超详细教程原创 2021-02-21 19:27:15 · 828 阅读 · 0 评论