答:NOT NULL 管必填,CHECK 管允许范围,PRIMARY KEY 和 UNIQUE 管标识与重复,FOREIGN KEY 管引用。约束是否支持和怎样检查,还要看版本与引擎。
答:COUNT() 数匹配行,COUNT(1) 数非 NULL 常量所以也数行,COUNT(列) 只数该列非 NULL 的行。MySQL 的 InnoDB 对 COUNT() 和 COUNT(1) 不必按旧口诀分性能。
答:NULL 表示缺失或未知,空字符串是长度为零的已知文本,零是数值。筛选缺失值用 IS NULL,普通等号与 NULL 比较得到未知。
答:先收集常见查询的筛选、连接、排序、结果范围与更新频率,再看数据分布和现有索引。按典型负载选择列和顺序,比给每个字段单独建索引更可靠。
答:旧 MySQL 资料中的 HEAP 通常指 MEMORY 引擎,数据主要在内存中,服务重启后行数据丢失。其他数据库里的堆表常指一种行存放组织,需要先确认语境。
答:两者都是近似数。FLOAT 通常占 4 字节,DOUBLE 通常占 8 字节,DOUBLE 能表示更多有效数字和更宽范围。需要精确十进制计算时应评估 DECIMAL。
答:MySQL 的 CHAR_LENGTH 数字符,LENGTH 数字节。utf8mb4 中文常用字通常占三个字节,部分字符占四个,英文 ASCII 则占一个。
答:ENUM 给列定义一组可选字符串,适合很小且稳定的状态集合。内部与枚举顺序有关,默认排序可能按定义顺序。非法值的处理还要看 SQL 模式。
答:myisamchk 用于检查和维护 MyISAM 表文件,部分选项可修复表。使用前要确认引擎,并保证操作期间服务器没有访问同一文件,避免并发修改造成损坏。
答:显式 MEMORY 表的容量主要受 max_heap_table_size 等条件影响,实际生效需核对创建和变更规则。这个变量不是所有内部临时表的统一内存上限。