不建议使用 SELECT * 的主要原因包括:1. 查询冗余字段浪费网络传输资源;2. 可能阻碍覆盖索引优化,降低查询效率;3. 表结构变更易引发代码兼容性问题,尤其是敏感字段泄露风险;4. SQL可读性差。虽然调试场景下SELECT *仍可使用,但正式开发中应明确指定所需字段(如SELECT id, username FROM users),以提高性能、安全性和代码可维护性。这一规范尤其适用于高频接口、大数据量查询等核心业务场景。
辰风沐阳 阅读 35 2026-07-31
MySQL 中 NULL 表示未知或不存在的值,不能直接用 = 判断。查询 NULL 值应使用 IS NULL 或 IS NOT NULL,而非 = 或 !=。NULL 与空字符串不同,前者表示无值,后者是有值的空字符串。开发中需明确字段为 NULL 的含义,避免查询错误和统计偏差。关键点:NULL 不等于 NULL,判断 NULL 必须用专用语法,且要与空字符串区分开。
辰风沐阳 阅读 32 2026-07-30
MySQL 深度分页(如 limit 1000000,10)会导致性能骤降,原因是需扫描并丢弃前100万条数据。优化方案包括: 游标分页:用上一页末尾ID作为游标(WHERE id > 100000 LIMIT 20),性能最优但仅支持连续翻页; 延迟关联:通过覆盖索引先查ID再回表(子查询+关联),减少I/O开销,兼容跳页需求; 业务妥协:限制最大页数或缩小查询时间范围,降低数据量。前两种方案分别适用于无限滚动和管理系统分页场景。
辰风沐阳 阅读 507 2026-05-19
MySQL联合索引优化多条件查询的关键要点:1. 联合索引遵循最左前缀原则,查询条件必须从索引最左列开始且不能跳过中间列;2. 范围查询(>、<、between)会导致右侧列索引失效;3. 模糊查询中只有前缀匹配(like 'abc%')能使用索引。实际应用中应将等值查询列放前面,范围查询列放最后,并尽量使用前缀匹配。这些原则能显著提升大数据量表的查询性能,如电商订单表等场景。
辰风沐阳 阅读 761 2026-03-30
最开始学习 mysql 的时候,是在 windows 系统中,使用 mysql 压缩包,将 mysql 安装为系统服务。但在 linux 系统中,一直不是很明确安装流程,本文记录其中一种方式,使用 yum 源安装 mysql,适用于 centos 系统
辰风沐阳 阅读 8819 2024-01-10
在 MySQL 中,表是一个非常重要的概念,表中包含了许多字段。但是,在实际使用中可能需要对表中的字段进行修改。本文将记录如何根据 alter table 命令修改 MySQL 字段,包含:新增字段、删除字段、修改字段
辰风沐阳 阅读 2193 2023-08-14
项目开发初期,都是在本地进行开发调试,数据库也在本地。那么和你配合开发的同事,就可能想要连接你电脑的数据库,连接过程中可能就会遇到问题。本文详细记录这些问题及解决方案
辰风沐阳 阅读 3514 2023-04-17
在实际开发中,很多人对应不应该使用 not null 并没有一个明确的标准,要知道某个字段需不需要添加 not null,首先,要知道 null 和 not null 之间的区别,这样你才能更好的玩转 not null,也避免了在项目中可能遇到的一些坑
辰风沐阳 阅读 3674 2023-02-28
进入 MySQL 命令行后,长时间连接 MySQL 服务但未进行操作,MySQL服务自动断开,再次执行操作时出现提示: MySQL server has gone away。查看超时时间:select @@wait_timeout; 设置超时时间:set @@wait_timeout = 700;
辰风沐阳 阅读 2050 2022-06-30
索引可以极大的提高数据查询速度,建立索引后会生成索引文件,所以本质上索引是以空间换时间。索引会降低插入,删除,更新的速度,是因为当数据发生改变后,会重新建立索引,那么就会重新生成索引文件,导致增删改操作变慢
辰风沐阳 阅读 2665 2022-06-28