MySQL实战45讲学习笔记基础架构
今天开始把《MySQL实战45讲》的知识做一笔记,在加深印象的同时,希望对其它人也有所帮助。 大体来说,Mysql可分为Server层和存储引擎层两大部分,如图: 其中,Serve层包括连接器、查询缓存、分析器、优化器、执行器以及所有的内置函数(如:日期时间函数等);存储引擎层负责数据的存...
2024-01-10【MySQL】笔记(4)
8.7、索引的实现原理:通过B Tree缩小扫描范围,底层索引进行了排序,分区,索引会携带数据在表中的“物理地址”,最终通过索引检索到数据之后,获取到关联的物理地址,通过物理地址定位表中的数据,效率是最高的...... 一.创建表:1.1 建...
2024-01-100618_MySQL实战45讲_学习笔记_Orderby
表结构-- auto-generated definitioncreate table product_application_config( id bigint auto_increment primary key, product_no varchar(32) not null, channel_code varchar(32) ...
2024-01-10MySQL实战45讲之基础篇flowers
本文主要记录学习MySQL实战45讲之基础篇过程中一些新的收获,以及总结主要内容。其中包括SQL如何运行、日志系统、事务隔离、索引和锁等。 前言本文主要记录学习MySQL实战45讲之基础篇过程中一些新的收获,以及总结主要内容。其中包括SQL如...
2024-01-10【MySQL实战】索引
主键索引的叶子节点存的是整行数据。在 InnoDB 里,主键索引也被称为聚簇索引(clustered index)。非主键索引的叶子节点内容是主键的值。在 InnoDB 里,非主键索引也被称为二级索引(secondary index)。主键索引与普通索引的区别在于,主键索引不需要回表遍历,普通索引在普通索引拿到索引值后,需要...
2024-01-10MySQL索引学习笔记
索引是帮助MySQL高效获取数据的排好序的数据结构一.存储引擎这里只讨论使用最多的两种引擎【MyISAM】和【InnoDB】1. MyISAM 引擎(非聚集)上图是是使用myisam引擎的文件,可以看出:MyISAM索引文件和数据是分离的(非聚集)。当一个查询带有索引,得先通过MYI文件(B+TREE)读取到该条数据的磁盘文...
2024-01-10【MySQL】笔记(2)
分组函数一般都会和group by联合使用,这也是为什么它被称为分组函数的原因,并且任何一个分组函数(count sum avg max min)都是在group by语句执行结束之后才会执行的,当一条sql语句没有group by的话,整张表的数据会自成一组..... 1.简单的查询语句...
2024-01-10MYSQL建表规则
建立表规约 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字...
2024-01-10MySQL千万级数据表的优化实战记录
前言这里先说明一下,网上很多人说阿里规定500w数据就要分库分表。实际上,这个500w并不是定义死的,而是与MySQL的配置以及机器的硬件有关。MySQL为了提升性能,会将表的索引装载到内存中。但是当表的数据到达一定的量的时候,会导致内存无法存储这些索引,无法存储索引,就只能进行磁盘IO,从...
2024-01-100618_MySQL学习笔记
加号 +Mysql中加号只能做运算符select 100+90 ==> 190 select "100"+90 ==> 190 如果有一个是字符串,那么尝试转换成数值型,转换成功select "jack" + 90 ==> 90 转换失败则为0select null + 90 ==> null 只有任一个为null结果就是null_ 表示单个字符select * from person where name like "__a_b%"; 表示查找名字第三个字符为a,第五...
2024-01-10MySQL学习笔记(26):日志
本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。目录错误日志二进制日志查询日志慢查询日志其他日志分析工具MySQL有4种日志:错误日志、二进制日志(BINLOG)、查询日志、慢查询日志。错误日志错误日志记录了mysqld的启动和停止,以及运行过程中发生的严重错误,其格式为纯文本,默认...
2024-01-10MySQL学习笔记(10):视图
本文更新于2019-06-22,使用MySQL 5.7,操作系统为Deepin 15.4。目录为了便于描述,此处将创建视图的DDL复述一次,其已于“SQL”章节描述。CREATE [OR REPLACE] [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW viewname [(colname[, ...])]AS select_statement [WITH [CASCADE|LOCAL] CHECK OPTION]视图的行和列数据来自定义视图的查询中使用的表,...
2024-01-10MySQL时区
是否有详尽的MySQL时区列表?似乎time_zoneMySQL设置中的有效值取决于主机操作系统,但我无法找到可能值的列表。我需要时间显示卡尔加里当地时间。回答:从MySQL 5.7文档(重点是我的):时区值可以多种格式给出,都不区分大小写:值“ SYSTEM”表示时区应与系统时区相同。该值可以以字符串形式...
2024-01-10实例操作MySQL短链接
MySQL短链接怎么设置1.查看mysql连接数语句命令:2.首先作为超级用户登录到MYSQL,注意必须是超级用户,否则后面会提示没有修改权限。3.按回车键执行后显示目前的超时时间:4.显示的是默认的超时时间,即8个小时(单位是秒)。现在重新设置该参数,例如我们要将超时时间设置成10个小时。5.按回...
2024-01-10MySQL:获取最新记录
在下表中,如何仅根据登录列获取的 ,id=1而不是所有3条记录?+----+---------------------+---------+| id | signin | signout |+----+---------------------+---------+| 1 | 2011-12-12 09:27:24 | NULL || 1 | 2011-12-13 09:27:31 | NULL || 1 | 2011-12-14 09:27:34 | NULL...
2024-01-10MySQL学习笔记(13):锁和事务
本文更新于2019-09-22,使用MySQL 5.7,操作系统为Deepin 15.4。目录锁锁概述MyISAM表级锁InnoDB行级锁InnoDB表级锁死锁事务事务概述InnoDB事务分布式事务锁锁概述MyISAM和MEMORY存储引擎使用表级锁。BDB存储引擎进使用页级锁,但也支持表级锁。InnoDB存储引擎默认使用行级锁,也支持表级锁。表级锁:开销小,...
2024-01-10MySQL复制机制原理讲解
背景介绍复制,就是对数据的完整拷贝,说到为什么要复制,首先能想到的是怕数据意外丢失,使得用户蒙受损失。当完成了数据复制之后,会发现它的优势不止这一点,假如一台机器宕机了,可以启用备份在另一台机器的数据。毕竟宕机的概率很小,闲暇时间还可以让备份机器分担主机器的流量压...
2024-01-10MySQL优化(5):分区
分区:分区也是MySQL优化中的一个重要方式将一个表中的数据和索引,分散到不同的文件中进行存储通常情况下,一个表,对应一组数据和索引文件,一个表的数据和索引集中存储在这组文件中 当一个表出现了大量的记录时,可以将其分布到不同的数据和索引文件中进行存储Innodb来说,一个表对应...
2024-01-10在选择查询中选择MYSQL
您好!我有一个需要输出屏幕数据的查询。 每个屏幕有4个展位可供展示。我需要一个查询有一个结果(因为我只有一个屏幕),并有4个展位(怎么我分配的4个展位)在选择查询中选择MYSQL这里是我的查询:$result = DB::select(" SELECT `A`.`scr_name`, `A`.`mission_id`, `B`.`booth_id`, `E`.`name` ...
2024-01-10gORM操作MySQL的实现
ORM 框架ORM:Object Relational Mapping —— 对象关系映射。作用:通过操作结构体对象,来达到操作数据库表的目的。通过结构体对象,来生成数据库表。优点:SQL有可能 比较复杂。(Oracle --- 子查询 -- 嵌套)ORM 操作数据库,不需要使用 SQL不同开发者,书写的 SQL 语句执行效率不同。go语言...
2024-01-10MySQL学习笔记(21):优化磁盘IO
本文更新于2020-04-05,使用MySQL 5.7,操作系统为Deepin 15.4。目录使用符号连接分布IO禁止操作系统更新文件的atime属性用裸设备(Raw Device)存放InnoDB共享表空间调整IO调度算法使用磁盘阵列(RAID)RAID卡电池充放电问题NUMA架构优化使用符号连接分布IO利用操作系统的符号连接,将不同的数据库、表、索引...
2024-01-10MYSQL:如何“重新排序”表
我有一张像下面的桌子,| id | name | color |------+--------+---------| 1 | pear | green || 2 | apple | red || 3 | banana | yellow || 4 | grape | purple |我想使用“名称”列按字母顺序重新排序,并使用此新顺序重置ID(自动递增),以得到以下结果| id | name | color |------+--------+---------|...
2024-01-10MySQL学习笔记(11):存储过程和函数
本文更新于2019-06-23,使用MySQL 5.7,操作系统为Deepin 15.4。目录SQL语句创建存储过程或函数修改存储过程或函数删除存储过程或函数调用存储过程或函数变量、条件、处理、游标变量条件处理游标流程控制IFCASELEAVEITERATELOOPWHILEREPEAT示例SQL语句创建存储过程或函数创建存储过程:CREATE PROCEDURE name ({[IN|OUT...
2024-01-10在MySQL中按日期分组显示记录
要在MySQL中对日期进行分组,请使用GROUP BY子句-mysql> create table DemoTable2002( CustomerName varchar(20), CustomerShippingDate datetime);使用插入命令在表中插入一些记录-mysql> insert into DemoTable2002 values('Chris','2019-01-10');mysql> insert into DemoTable2002 values('David','201...
2024-01-10如何以永久方式对MYSQL表排序?
我的桌子上有Symbol和Weight(仅两列)列。我需要根据符号的权重对表格进行排序,这是我可以做到的SELECT symbol, weight FROM symbols ORDER BY weight DESC但这不会改变我的表,但是会给我排序的输出(临时)。我想对表格进行永久排序。我怎样才能做到这一点?回答:您可以使用ALTER TABLE执行此操作FEALTER TAB...
2024-01-10