MySQL

如何设计出更加高效安全的索引?

索引设计应遵循最优原则,基于数据特征与查询模式构建,以确保最高的检索效率。一般情况下,索引设计遵循以下规则:原则类别具体原则说明案例/解释应创建1. 选择唯一性索引值唯一的字段能极速定位记录。学号、身份证号等唯一字段。2. 为排序、分组字段建索引可避免ORDER BY、GROUP BY、DISTINCT、UNION的耗时排序操作。常用于排序的“创建时间”、用于分组的“部门I

MySQL date_add() 函数:日期时间加法运算

在MySQL中,date_add(date, interval expr unit) 函数用于对日期时间进行加法运算,即返回指定日期时间加上一定时间间隔后的结果。其语法格式如下:date_add(date,intervalexprunit)--返回日期时间加上间隔后的结果date_add()函数根据日期时间参数和时间间隔参数,返回计算后的新日期时间,

详细介绍MySQL InnoDB的 三 种行锁定方式

在MySQL中,InnoDB不是直接锁住磁盘上的数据行,而是锁住该行数据所对应的索引项。即使你没有为表定义任何主键(PRIMARYKEY),InnoDB也会自动为你生成一个隐藏的、名为DB_ROW_ID的聚簇索引来组织数据。所以,每张InnoDB表至少有一个索引,

如何重置MySQL里root密码

通过命令行参数--skip-grant-tables进行修改,其核心思想是临时关闭MySQL的用户权限验证系统,让你可以无需密码直接以最高权限登录,然后修改密码。(--skip-grant-tables是一个启动选项(参数),用于启动MySQL服务器进程(mysqld)。

MySQL里为什么强烈建议在明确的事务边界内进行数据操作?

什么是事务?记住一句话就行了:”要不不做,要不全做!”举个例子:银行转账就能很清晰地描述这个概念。A给B转账,首先系统先扣除A账号里的钱,然后再增加B账号里的钱,此时并不会直接修改数据,而是检查转账人与收账人的钱是否相同,然后再进行数据修改。

MySQL max() 函数:求列最大值

在MySQL中,max(expr) 函数用于获取指定列的最大值,即返回查询结果集中某列的最大值。其语法格式如下:max(expr)--返回指定列的最大值max()函数是一个聚合函数,用于统计查询结果集中某列的最大值。该列可以是数值类型、日期类型或字符串类型。值得注意的是,max() 函数会忽略NULL值;如果所有值都是NULL或结果集为空,则返回NULL。这里准备了一张dotcpp_u

向MySQL发送请求时,MySQl会发生什么?

在《明白了MySQL内部结构才能成为高手!》里我们对MySQL框架有了一定的了解。现在让我们看看数据库收到请求后会发生什么?1.建立连接与验证:1.1客户端与MySQL服务器建立TCP连接。1.2服务器验证用户的登录权限。2.查询解析与优化2.1服务器为该连接创建一个工作线程。

MySQL year() 函数:获取日期的年份

在MySQL中,year(date) 函数用于获取日期的年份,即返回日期中的年份数值。其语法格式如下:year(date)--返回日期的年份year()函数根据日期参数返回对应的年份数值,返回范围为1000到9999。值得注意的是,year(NULL) 的返回值是NULL;对于非日期格式的字符串或无效日期,year() 函数将返回NULL。下面,我们将使用year()函数获取日期的年份

MySQL8.0+ json_table() 函数:JSON转关系表格

在MySQL中,json_table(json_doc, path COLUMNS (column_list)) 函数用于将JSON数据转换为关系表格,即从JSON文档中提取数据并返回表格形式的结果集。其语法格式如下:json_table(json_doc,pathCOLUMNS(column_list))--返回JSON数据转换的表格json_ta

MySQL存储过程

1. 什么是存储过程?存储过程(Stored Procedure)是一组为了完成特定功能的**预编译的SQL语句集合**。它像一个存储在数据库服务器中的“脚本”或“函数”,有一个名字,当需要执行它所定义的操作时,调用它的名字即可。2. 为什么需要存储过程?封装性:隐藏复杂业务逻辑,只暴露调用接口。高性能:预编译,首次编译后直接执行,减少了解析和优化开销。减少网络流量:客户端