误区 1:MySQL 就是 SQL。
SQL是语言,MySQL是实现这门语言并管理数据的数据库系统。误区 2:主键只是“唯一约束加强版”。
在 InnoDB 里,主键还是整张表的重要组织锚点。误区 3:索引越多越快。
索引会拖慢写入、占空间、增加优化器判断成本。误区 4:有了应用校验,就不用数据库约束。
应用会漏、会绕,数据库约束才是最后一道硬门槛。误区 5:
LEFT JOIN后在WHERE里筛右表,一定没问题。
这经常会把左连接悄悄写成内连接效果。误区 6:开启事务后,所有语句都能按想象回滚。
许多 DDL 涉及隐式提交,不能按普通 DML 心态理解。误区 7:默认就已经在一个长事务里。
MySQL 默认autocommit=1,很多时候一条语句就是一个独立提交单元。误区 8:
UNIQUE能阻止多个NULL。
在常见 MySQL 语义里,NULL不等于NULL,所以这点要单独理解。误区 9:范式越高越好,能拆多碎就拆多碎。
先保证模型清晰,再根据查询热点做有限冗余,不要教条化。误区 10:MySQL 能存任何数据,所以什么都适合用它做。
能做不代表最合适,技术选型要看场景。
第十八篇:MySQL 完全指南 —— 城市户籍总账宇宙