MySQL
文章平均质量分 76
奔向理想的星辰大海
这个作者很懒,什么都没留下…
展开
-
深刻理解 MySQL 索引
MySQL 普遍采用 B+Tree 实现,索引本身很大,不可能全部存储内存,因此需要以索引文件的形式存储磁盘。相对于内存读取,I/O 存取的消耗要高几个数量级,由于 MySQL 数据存储保存在磁盘中,所以在查询时磁盘 I/O 是其主要查询性能瓶颈,而使用索引就可以减少磁盘 I/O。索引的原理其实是不断的缩小查找范围, 就如我们平时用字典查单词一样,先找首字母缩小范围,再第二个字母等等。对于B-树、B+树而言,当高固定情况下,宽度越大索引性能越好。原创 2024-05-21 09:39:04 · 422 阅读 · 0 评论 -
大厂的MySQL为啥不用外键?
如果有关联关系的数据存在,删除主表中的记录时,外键约束可以阻止删除,或者通过级联操作删除相关的从表数据。有些团队认为外键引入了过多的服务之间的耦合,因此选择在微服务架构中限制外键的使用。当创建两张表,其中一张是用户表,另一张是用户拓展表,可以使用外键来建立它们之间的关联。这些操作定义了在主表中进行更新或删除操作时,对应的外键列在从表中的行的处理方式。外键定义了两个表之间的引用关系,它连接了两个表,使它们之间建立起一定的联系。外键通常关联到另一个表的主键列,这样它就能确保引用的数据是一致的。原创 2024-05-11 09:44:11 · 345 阅读 · 0 评论 -
让公司的MySQL支撑亿级流量的策略
从库越多,从库连接上来的I/O线程越多,主库也要创建同样多log dump线程处理复制的请求,对于主库资源消耗较高,同时受限于主库的网络带宽,所以一般一个主库最多挂3~5个从库。使用独立的log dump线程是异步,避免影响主库的主体更新流程,而从库在接收到信息后并不是写入从库的存储,是写入一个relay log,这是为避免写入从库实际存储会比较耗时,最终造成从库和主库延迟变长。在同步写DB的同时,把朋友圈数据写Cache,这样Consumer在获取朋友圈信息时,优先查询Cache,这也能保证数据一致性。原创 2024-04-29 09:39:54 · 3 阅读 · 0 评论 -
阿里巴巴出的MqSQL数据库设计规范
设计数据库时请记住:清晰的规范和一致的实践是确保数据库长期稳定运行的关键。原创 2024-04-25 09:37:14 · 87 阅读 · 1 评论 -
MySQL别再用 offset 和 limit 分页了,性能太差!
这意味着,如果你有 1 亿个用户,OFFSET 是 5 千万,那么它需要获取所有这些记录 (包括那么多根本不需要的数据),将它们放入内存,然后获取 LIMIT 指定的 20 条结果。要使用这种基于游标的分页,需要有一个惟一的序列字段 (或多个),比如惟一的整数 ID 或时间戳,但在某些特定情况下可能无法满足这个条件。如果我们的表没有主键,比如是具有多对多关系的表,那么就使用传统的 OFFSET/LIMIT 方式,只是这样做存在潜在的慢查询问题。思考完后,可以在思考下,如果分库分表,你会这么去分页呢?原创 2024-04-23 09:46:07 · 68 阅读 · 0 评论 -
MySQL误删数据如何尽快恢复策略
如果开启了MySQL的二进制日志(binlog),可以使用它来恢复数据。二进制日志记录了数据库更改的所有操作,可以将数据库恢复到任何指定时间点。市面上也有许多高效的数据恢复工具,如Percona Data Recovery Tool for InnoDB,这些工具可以帮助恢复未备份的InnoDB表数据。使用事务可以确保操作的原子性,即要么所有的更改都被提交,要么全部撤销。如果有进行定期备份,可以从最近的备份中恢复数据。恢复过程可以是全库恢复,也可以是部分恢复。合理的权限分配可以有效避免误操作。原创 2024-04-22 10:07:45 · 127 阅读 · 0 评论 -
Java开发改了MySQL表后,所有的索引都消失了
但当一些耗时SQL执行时,就会出现同步延迟。重新考虑这个问题,我们需要保留的数据仅仅只有千万中的不到10万条非bad_group的数据,因此除了删除bad_group数据这种方法,更简单的是将有效数据先copy到一张临时表中,然后drop原表,再重新创建表,将临时表中数据拷贝回来。按照这个思路,回忆起之前在日常环境写假数据的时候,如果指定了一个比较大的id,那么后续所有新数据都会在这个id基础上生成(比如当前表中只有10条记录,id=10,插入一条id=100的数据,后续数据就会接着id=101继续生成。原创 2024-04-19 10:03:08 · 113 阅读 · 0 评论 -
MySQL不推荐使用uuid或者雪花id作为主键
从开篇的提出问题,建表到使用jdbcTemplate去测试不同id的生成策略在大数据量的数据插入表现,然后分析了id的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。那么为什么会出现这样的现象呢?因为uuid相对顺序的自增id来说是毫无规律可言的,新行的值不一定要比之前的主键的值要大,所以innodb无法做到总是把新行插入到索引的最后,而是需要为新行寻找新的合适的位置从而来分配新的空间。原创 2024-04-13 14:33:53 · 115 阅读 · 0 评论 -
Redis 与MYSQL 数据实现同步
通过以上步骤,我们可以实现将数据库中的数据同步到 Redis 中。然后,我们创建 Redis 连接,并将数据同步到 Redis 中。最后,我们使用定时任务来定期执行数据同步操作,以保持 Redis 中的数据与数据库中的数据同步。在某些场景下,我们可能需要将数据库中的数据同步到 Redis 中,以提高读取性能和响应速度。为了保持 Redis 中的数据与数据库中的数据同步,我们可以使用定时任务来实现自动同步。总之,Redis 是一个强大的内存数据库,通过与数据库的数据同步,可以进一步提高读取性能和响应速度。原创 2024-04-12 10:39:30 · 97 阅读 · 0 评论 -
一文带你熟悉MySQL索引
想象一下,你正在图书馆找一本特定的书。如果没有索引,你需要走过每一个书架,查看每一本书的标题,这会非常耗时。但如果有一个索引卡片,告诉你每本书的位置,你就可以直接走到那本书所在的书架,快速找到你想要的书。在MySQL数据库中,索引就类似于这个索引卡片,它帮助数据库快速定位到存储在表中的数据。原创 2024-04-11 14:48:15 · 10 阅读 · 0 评论 -
MySQL拥有2000万条数据的前提下,如何确保Redis仅缓存的20万条数据
Redis的所有数据都存储在内存中,这意味着它的容量相较于磁盘存储更为有限。为了解决内存容量不足的问题,Redis提供了多种数据淘汰策略。其中,与保证热点数据密切相关的是LFU(Least Frequently Used)策略,它能够根据数据对象的访问频次,将访问次数最少(即最不常用)的数据淘汰出内存,以便为新的数据腾出空间。原创 2024-04-10 10:43:44 · 1000 阅读 · 0 评论 -
mysql 千万数据分页查询优化
只适合小型应用的快速开发,对于ERP,OA,大型网站,数据层包括逻辑层的东西都不能用框架。1、到了100万的数据,160万数据,15G表,190M索引,就算走索引,limit都得0.49秒。综上:如果对于有where 条件,又想走索引用limit的,必须设计一个索引,将where 放第一位,limit用到的主键放第2位,而且只能select 主键!查询字段一较长字符串的时候,表设计时要为该字段多加一个字段,如,存储网址的字段 查询的时候,不要直接查询字符串,效率低下,应该查诡该字串的crc32或md5。原创 2024-04-09 09:58:28 · 769 阅读 · 0 评论 -
MySQL递归查询:处理层次结构数据
在数据库管理中,处理具有层次结构的数据一直是一项常见任务。MySQL的递归查询功能通过公用表表达式(CTE)为处理这类数据提供了便捷的方式。递归查询可以用于管理组织结构、目录树等数据,使您能够轻松地查询任意节点的子节点、父节点或整个路径。原创 2024-04-09 09:45:29 · 32 阅读 · 0 评论 -
MySQL 主从 AUTO_INCREMENT 不一致问题分析
官方对于 REPLACE INTO 的定义如下:摘选自这里可以看到一张表包含主键或者唯一键的情况下,replace操作会判断原有的数据行是否存在,如果存在的话,就先删除旧的数据,然后进行insert操作,如果不存在的话,就和insert操作时一样的。第二段也提到了INSERT ... ON DUPLICATE KEY UPDATE Statement ,其实这个操作也会造成上面的主从autoincrement不一致现象,这里就不展开讨论了。!Note。原创 2024-04-07 09:47:51 · 10 阅读 · 0 评论 -
数据库日志采集:SQL Server篇
如果我们使用 SQL Server 代理来管理作业、警报和计划任务,那么 SQL Server 代理日志记录了这些作业执行的结果、警报触发的信息以及计划任务执行的详细日志。以上是配置 SQL Server 日志的一般步骤,具体的配置方法会根据具体的需求和环境而有所不同。事务日志的配置通常涉及到数据库的设置,包括数据库的恢复模式和事务日志的大小限制。以下是一个事务日志的简化示例。这些是 SQL Server 中常见日志的一些示例,实际的日志内容会更加详细,并包含更多的信息以便于故障排除、性能优化等工作。原创 2024-04-02 10:06:14 · 99 阅读 · 0 评论 -
在MySQL中实现数据的大规模并行处理和高速计算
在MySQL中实现数据的大规模并行处理和高速计算通常涉及到多种策略和技术的应用,这些策略包括但不限于优化查询性能、合理设计数据库架构、利用数据库内建的并发控制机制、部署分布式数据库解决方案,以及结合应用程序层面的并行处理技术。原创 2024-04-01 13:55:11 · 9 阅读 · 0 评论 -
MySQL 的 redo log 保证数据不丢的原理
反之,redo log 有,binlog 没有,如果开启了主从模式,主服务器因为 redo log 恢复了数据,但从服务器靠消费 binlog 保证和主服务器数据一致,这就导致从服务器比主服务器数据少。这样的好处是,如果我们频繁修改某一个位于磁盘的数据页,我们可以不用每次都去磁盘读写(注意是读和写)该页,而是直接对缓冲池中的内容修改,在一定的时机再把数据刷新到磁盘。第二,即便可以,也增加了很大的复杂度, redo log 中记录的数据(物理日志)能不能复原 SQL 语句,如何复原,这都是需要思考的问题。原创 2024-03-15 09:22:59 · 13 阅读 · 0 评论 -
MyBatis 工作原理详解
2. **创建 SQL 会话工厂**:通过配置文件(mybatis-config.xml)或注解来创建 SqlSessionFactory,它是 MyBatis 的核心接口。4. **执行 SQL 语句**:通过 SqlSession 的 API 执行 SQL 语句,可以执行映射的 SQL 语句并返回结果。1. **配置 SQL 映射文件**:MyBatis 首先通过 SQL 映射文件来定义 SQL 语句和对象之间的映射关系。5. **处理结果**:将执行 SQL 语句的结果映射到对象中。原创 2024-03-15 09:14:26 · 7 阅读 · 0 评论 -
10个高级的 SQL 查询技巧
如果您注意到,CTE很有用,因为您可以将代码分解为较小的块,但它们也很有用,因为它允许您为每个CTE分配变量名称(即。递归CTE尤其有用,它涉及查询组织结构图,文件系统,网页之间的链接图等的分层数据,尤其有用。示例问题:给定下面的员工表,写出一个SQL查询,了解员工的工资,这些员工比其管理人员工资更多。例如,如果您有一个月列,并且您希望为每个月创建一个单个列,则可以使用语句追溯数据的情况。示例问题:给定天气表,写一个SQL查询,以查找与其上一个(昨天)日期相比的温度较高的所有日期的ID。原创 2024-03-14 13:45:53 · 11 阅读 · 0 评论 -
SQL优化的七大策略
limit分页查询在大数据量的时候,查询效率同样会非常的慢,例如一个常见又非常头疼的问题就是limit 2000000,10 此时需要MySQL排序前200010条记录,仅仅返回200000-2000010的记录,其他记录丢弃,查询排序的代价非常大。我们的InnoDB存储引擎的聚集索引结果中,B+Tree的叶子结点下存储的是row,行数据,并且是根据主键顺序存放。count()是一个聚合函数,对于返回的结果集,一行行地判断,如果count函数的参数不是NULL,累计值就加1,否则不加,最后返回累计值。原创 2024-03-11 14:06:23 · 93 阅读 · 0 评论 -
Doris作为金融数据库,轻松支持10000个数据看板
在金融等数据密集型行业,数据源众多,数据流向也众多。这种现状很容易,几乎是不可避免地导致数据分析和管理混乱。例如,来自不同业务线的分析师会在数据报告中定义自己的财务指标。当你将这些无数的报告汇集到你的数据架构中时,你会发现许多指标在定义上重叠甚至相互矛盾。结果就是,开发一个简单的数据报告将需要来回进行大量的澄清沟通工作,使整个过程变得更加复杂和耗时。随着业务的发展,数据管理也需要“标准化”的阶段。在数据工程方面,这意味着你需要一个数据平台,可以在其中生成和管理所有指标。原创 2024-03-07 13:19:33 · 628 阅读 · 0 评论 -
SQL案例分析,窗口函数实现高效分页查询
本文介绍了如何利用窗口函数在一个语句中返回分页查询的结果和所需的全部参数,这种方法比传统的分页查询实现更加简洁高效。原创 2024-03-06 11:19:11 · 8 阅读 · 0 评论 -
SQL优化秘籍:应该避免使用1=1,以及更好的替代方案
在SQL查询中,有时你可能会看到类似WHERE 1=1的条件。这种写法在动态构建查询语句时特别常见,因为它提供了一个方便的占位符,可以方便地在后面添加额外的查询条件。然而,这种做法虽然在某些情况下有其便利性,但也存在一些问题,可能会导致性能下降或者使代码难以理解和维护。原创 2024-03-03 11:49:20 · 46 阅读 · 0 评论 -
SQLAlchemy:掌握外键和多种类型的关系定义技巧
本文介绍了SQLAlchemy中的关系模型、外键、一对多关系和多对多关系。关系模型是ORM框架的核心,它将多个表之间的关联转化为模型对象之间的关系。外键是关系模型中的重要概念,它用来表示两个表之间的关联关系。一对多关系表示一个模型对象可以对应多个另一个模型对象,而另一个模型对象只能对应一个该模型对象。多对多关系表示两个模型对象之间可以有多个相互关联的关系。在SQLAlchemy中,我们可以使用relationship函数和中间表来定义这些关系。原创 2024-03-01 10:39:44 · 621 阅读 · 0 评论 -
MySQL 事务的详细介绍
同时,事务有着严格的地定义,必须满足四个特性,也就是我们一直说的ACID,但是,并不是说各种数据库就一定会满足四个特性,对于不同的数据库的实现来说,在不同程度上是不一定完全满足要求的,比如,Oracle数据库来说,默认的事务隔离级别是READ COMMITTED,是不满足隔离性的要求的。另外,需要注意的是一致性是不关注中间状态的,比如银行转账的过程,你转账给别人,至于中间的状态,你少了500 ,他多了500,这些中间状态不关注,如果分多次转账中间状态也是不可见的,只有最后的成功或者失败的状态是可见的。原创 2024-02-29 11:38:08 · 892 阅读 · 0 评论 -
【大数据】精通SQL数据清洗、集成和转换
数据准备阶段通常占据了整个数据分析工作的80%多的的工作量。这个阶段的任务是整理和清理数据,以确保其质量和一致性,并进行必要的数据集成和转换,以满足分析需求。原创 2024-02-26 10:14:17 · 724 阅读 · 0 评论 -
【大数据】分库分表如何管理不同实例中几万张分片表
ShardingSphere框架成员中的Shardingsphere-jdbc和Shardingsphere-proxy都提供了自动化管理分片表的功能auto-tables,可以统一维护大量的分片表,避免了手动编写脚本和维护分片表的繁琐工作,极大程度减少分库分表的开发和维护成本,提升效率和可靠性。图片这里咱们先使用Shardingsphere-jdbc来实际操作一下,Shardingsphere-proxy方式后续会有单独的文章详细讲解,就不在这里展开了。原创 2024-02-26 09:39:55 · 1642 阅读 · 0 评论 -
提升MySQL效率的使用技巧
事务是一种重要的数据库管理概念,它确保数据的完整性和一致性。通过将一系列SQL语句作为一个单元来执行,事务要么全部成功完成,要么完全回滚以保持数据的一致性。本文介绍了十个提升MySQL开发效率的高效技巧。通过合理地利用这些技巧,开发人员可以在MySQL项目中取得更好的性能和生产力。MySQL的EXPLAIN语句可以帮助分析查询性能。了解不同类型的连接查询以及何时使用它们对于检索相关数据十分必要。存储过程支持封装SQL逻辑,使代码的维护和执行更具可管理性。MySQL支持正则表达式,可用于强大的模式匹配。原创 2024-02-25 20:48:02 · 145 阅读 · 0 评论 -
mybatis 连不上数据库原因排查思路
2. 数据库连接信息错误:检查MyBatis的配置文件`mybatis-config.xml`或`application.properties`/`application.yml`中数据库连接信息是否正确,如URL、用户名和密码是否准确无误。7. 数据库连接池配置问题:如果你使用了数据库连接池(如HikariCP、C3P0等),连接池的配置可能不正确,比如最小连接数设置得太大,导致无法获取到连接。9. 数据库满了:如果数据库的硬盘空间满了或者数据库的连接数达到了上限,也可能导致无法连接。原创 2024-02-23 10:16:19 · 250 阅读 · 0 评论 -
MySQL 使用正则表达式提取字段中包含小写字母的数据,并把小写字母转换成大写
在上面的查询中,`column_name`应该替换为您要查询的字段名,`table_name`应该替换为您要查询的表名。这个查询会返回列`column_name`中包含任何小写字母(a-z)的字符串,并将它们转换为大写字母(A-Z)。在MySQL中,您可以使用`RLIKE`(在MySQL 5.7之前)或`REGEXP`(从MySQL 5.7开始)来使用正则表达式匹配包含小写字母的字段。请注意,正则表达式中的方括号`[ ]`用于字符集,`a-z`表示匹配任何从小写'a'到小写'z'的字母。原创 2024-02-22 13:50:30 · 38 阅读 · 0 评论 -
【MySQL】MySQL 中实现高可用架构最佳方案
MHA是一个开源的高可用性管理工具,用于监控MySQL复制,并在主服务器故障时自动进行故障转移。- 主服务器上的变更通过二进制日志(binary log)记录并同步到从服务器。- 当主服务器发生故障时,可以手动或自动将一个从服务器提升为新的主服务器。- 使用读写分离,可以将读操作分发到从服务器,而将写操作保留在主服务器上。- 主服务器负责处理写操作,而从服务器负责处理读操作。- 它支持多主复制,没有主从概念,所有节点都是对等的。- 它还可以自动应用主服务器上的变更到从服务器。原创 2024-02-22 09:38:44 · 306 阅读 · 0 评论 -
【MySQL】MySQL 将表的列数据横向展示
如果你需要转置表,即行变成列,列变成行,你可以使用`TRANSPOSE`函数。WHERE column_name IN ('column1', 'column2', 'column3', -- 你的列名列表);如果你有一个简单的表,并且想要展示表中的所有列,你可以使用`UNION ALL`来将结果集转置。如果你的数据库版本较低,无法使用`TRANSPOSE`函数,可以使用`CASE`语句来模拟转置。如果表结构复杂或者列很多,你可能需要使用动态SQL来生成查询。原创 2024-02-19 10:03:46 · 819 阅读 · 0 评论 -
系统性搞懂MySQL数据存储
所有被删除掉的记录都会组成一个所谓的垃圾链表,在这个链表中的记录占用的空间称之为所谓的可重用空间,之后如果有新记录插入到表中的话,可能把这些被删除的记录占用的存储空间覆盖掉。页1中用户记录最大的主键值是4,而页2中有一条记录的主键值是3,因为4 > 3,所以这就不符合下一个数据页中用户记录的主键值必须大于上一个页中用户记录的主键值的要求,所以在插入主键值为3的记录的时候需要伴随着一次记录移动,也就是把主键值为4的记录移动到页2中,然后再把主键值为3的记录插入到页1中。每个记录需要的额外信息是27字节。原创 2024-02-06 10:28:27 · 885 阅读 · 0 评论 -
Mybatis 动态修改 SQL 的两种方式
在Spring AOP中,你可以使用切面(Aspect)来拦截MyBatis执行期间的方法调用,包括修改BoundSql对象中的SQL语句。原创 2024-02-05 10:24:44 · 628 阅读 · 0 评论 -
【MySQL】MySQL维护数据库索引的方法
在MySQL中,通过`ALTER TABLE`语句可以动态地增加索引到已存在的表中,以提高查询效率和确保数据的唯一性。如果需要同时管理多个索引,可以使用`DROP INDEX`语句来删除索引,或者使用`SHOW INDEX`命令来查看当前表的所有索引信息。主键索引是一种特殊的唯一索引,它保证一行的唯一性,并且不能有NULL值。唯一索引不仅提高查询性能,还确保索引列的值是唯一的,不允许有重复值。普通索引用于提高查询性能,但它不会保证索引列的值是唯一的。多列索引也称为复合索引,它在一个索引中包含了多个列。原创 2024-02-04 11:16:00 · 338 阅读 · 0 评论 -
mysql 202301字符串转换成日期格式
上面的旅行图表示了字符串转换成日期格式的过程,其中使用了STR_TO_DATE函数将字符串转换成日期,再使用DATE_FORMAT函数将日期格式化为指定的字符串。在上面的示例中,%Y代表4位年份,%c代表无前导零的月份,%e代表无前导零的日期。本文介绍了在MySQL中将字符串转换成日期格式的方法,使用了STR_TO_DATE和DATE_FORMAT函数进行转换和格式化。SELECT DATE_FORMAT(STR_TO_DATE('202301', '%Y%m'), '%Y年%c月');原创 2024-01-30 17:51:11 · 295 阅读 · 0 评论 -
【MySQL】MySQL优化数据库性能
3. 数据迁移和集成:随着业务的发展,可能需要将数据从旧的数据库迁移到新的数据库,或者集成来自多个源的数据。错误的查询设计,如使用了错误的索引、产生了大量的子查询或聚合操作,都可能导致数据库响应缓慢。7. 维护和优化:数据库的维护工作,如定期更新、清理和优化,是确保数据库性能和稳定性的重要部分。SQL数据库作为广泛使用的数据库技术,虽然非常成熟和可靠,但在使用过程中仍然可能遇到一些常见的问题和挑战。8. 复杂查询的编写和优化:复杂的查询,尤其是涉及多个表和复杂关系的查询,编写和优化都可能比较困难。原创 2024-01-30 13:59:48 · 333 阅读 · 0 评论 -
【MySQL】MySQL 提高数据库的稳定性
例如,腾讯公司申请的专利中提出了一种新的数据同步方法,以提高数据同步的效率和稳定性。10. 性能和稳定性测试:通过严格的性能和稳定性测试,确保数据库系统在各种负载和故障场景下都能表现稳定。8. 系统架构的合理设计:在系统设计阶段就考虑高可用性和故障转移能力,采用如负载均衡、冗余存储和分布式架构等技术,以提高系统在面对故障时的恢复能力。9. 应对故障的策略:制定和实施有效的故障应对策略,如备份恢复、故障转移和自动故障修复等,以确保在发生故障时能够迅速恢复服务。4. 索引优化:合理的索引可以显著提升查询速度。原创 2024-01-30 13:53:51 · 430 阅读 · 0 评论 -
MySQL主从同步延迟解决
另一方面,由于SQL Thread也是单线程的,当主库的并发较高时,产生的DML数量超过slave的SQL Thread所能处理的速度,或者当slave中有大型query语句产生了锁等待那么延时就产生了。innodb_flush_log_at_trx_commit = 1 之类的设置是需要的而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog,innodb_flushlog也可以设置为0来提高sql的执行效率。单个库读写分离,一主多从,主写从读,分散压力。原创 2024-01-29 10:13:47 · 1070 阅读 · 0 评论 -
MySQL枚举值列表查询与使用方法详解
枚举类型的值在创建表时定义,每个值都有一个关联的整数值,从1开始递增。然而,MySQL枚举类型的缺点是它们不够灵活,因为它们的值在创建表时定义,不能在运行时修改。MySQL是一种广泛使用的关系型数据库管理系统,它支持枚举类型,可以在创建表时定义列的可能值列表。MySQL枚举类型是一种有用的数据类型,可以限制列的可能值并提高数据的准确性和完整性。MySQL枚举类型的优点是它能够限制列的可能值,从而提高数据的准确性和完整性。此外,枚举类型的值通常比字符串类型的值更快,因为它们存储为整数。原创 2024-01-29 09:58:37 · 145 阅读 · 0 评论