mysql
-
mysql如何创建哈希索引
MySQL不支持直接创建哈希索引,但可通过MEMORY引擎或虚拟列模拟实现。1. MEMORY引擎原生支持HASH索引,适用于等值查询的小数据量内存表;2. InnoDB可通过生成哈希列(如CRC32)并建立B+树索引模拟哈希查找,提升大字段查询性能,需同时校验哈希值和原始值以避免冲突;3. 哈希索…
-
mysql InnoDB的特性
InnoDB支持事务ACID特性、行级锁与MVCC、外键约束及崩溃恢复机制,通过Redo/Undo日志和双写缓冲保障数据一致性与安全性,适用于高并发、强事务性场景,是MySQL首选存储引擎。 MySQL的InnoDB存储引擎是目前最常用的引擎之一,尤其适用于高并发、事务性要求强的应用场景。它具备多项…
-
mysql中undo log的两种类型
Insert Undo Log用于事务回滚,不参与MVCC,事务提交后可立即清除;2. Update Undo Log支持事务回滚和MVCC,保留历史版本直至purge线程清理。 在 MySQL 中,undo log 是用于实现事务回滚和多版本并发控制(MVCC)的重要机制。它记录了数据修改前的旧值…
-
mysql字段选择是什么
合理选择MySQL字段类型和属性可提升存储效率与查询性能:根据数据范围选用整数、浮点或字符串类型,金额用DECIMAL,日期用DATETIME或TIMESTAMP;尽量设NOT NULL并设置默认值,主键推荐自增INT或BIGINT;高频查询字段加索引,外键需建索引且类型匹配;避免过度使用VARCH…
-
mysql加锁规则是什么
答案:MySQL加锁规则受存储引擎、隔离级别和SQL类型影响,InnoDB通过S锁、X锁、意向锁、记录锁、间隙锁和临键锁实现并发控制;加锁基于索引,不同隔离级别下加锁行为不同,RC级别不加间隙锁,RR级别使用临键锁防止幻读,Serializable下SELECT自动加S锁;SELECT默认快照读不加…
-
mysql外键约束有什么要求
外键约束需使用InnoDB引擎,两列数据类型、符号及长度须一致,被引用列必须有索引(如主键或唯一键),父表必须先存在,建议字符集和排序规则相同,并可定义级联等操作行为以维护数据完整性。 MySQL外键约束(FOREIGN KEY)用于确保两个表之间的引用完整性,维护数据的一致性和有效性。要正确使用外…
-
SQL中COUNT函数怎么用_COUNT函数使用方法与实例详解
COUNT函数用于统计行数,包括COUNT(*)统计所有行、COUNT(列名)忽略NULL值、COUNT(DISTINCT 列名)统计唯一非空值,可结合WHERE条件和GROUP BY分组实现多维度计数。 在SQL中,COUNT函数用于统计查询结果中行的数量,是聚合函数中最常用的一个。它可以用来统计…
-
mysql内连接是什么
内连接返回两表中存在匹配记录的数据,语法为SELECT 列名 FROM 表1 INNER JOIN 表2 ON 条件;例如查询学生及其成绩:SELECT students.name, grades.subject, grades.score FROM students INNER JOIN grad…
-
mysql读写分离是什么
读写分离是将MySQL的读写操作分发至不同服务器以提升性能的架构策略。主库处理写操作并同步数据到从库,从库负责读操作,通过主从复制保持一致性。该方案可减轻主库压力、提高系统吞吐量和可用性。实现方式包括应用层控制和中间件代理,均依赖主从复制机制。但存在主从延迟问题,高一致性场景需强制读主库,且运维复杂…
-
mysql中的数据类型分为哪几类?
MySQL数据类型主要分为数值、字符串、日期和时间三大类。数值类型包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、FLOAT、DOUBLE和DECIMAL,适用于不同精度的数字存储需求;字符串类型涵盖CHAR、VARCHAR、TEXT系列、BLOB系列、ENUM和SE…