1. 前者要解析数据字典,后者不需要 2. 结果输出顺序,前者与建表列顺序相同,后者按指定字段顺序。 3. 表字段改名,前者不需要修改,后者需要改 4. 后者可以建立索引进行优化,前者无法优化 5. 后者的可读性比前者要高所以, 尽量使用后者来查询
由于 utf8 的每个字符最多占用 3 个字节。而 MySQL 定义行的长度不能超过65535(text和blob不计算在内), 因此 N 的最大值计算方法为:(65535-1-2)/3。 减去 1 的原因是实际存储从第二个字节开始,减去 2 的原因是因为要在列表长度存储实际的字符长度(长度大于256用两个字节存储),除以 3 是因为 utf8 限制:每个字符最多占用 3 个字节。
InnoDB 行锁是通过给索引上的索引项加锁来实现的,这一点 MySQL 与Oracle 不同,后者是通过在数据块中对相应数据行加锁来实现的。
InnoDB 这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB 才使用行级锁,否则,InnoDB 将使用表锁
myisam:
1.5.5版本前默认使用myisam引擎
2.支持表级锁,不支持事务,不支持行级锁,不支持外键
3.文件存储为3个文件,数据,搜索目录,表结构
innodb:
1.5.6后默认使用innodb引擎
2.支持表级锁,行级锁,支持事务,支持外键
3,文件存为2个文件,数据和搜索目录,表结构
-
-
唯一索引:与普通索引类似,不同的就是:mysql数据库索引列的值必须唯一,但允许有空值
-
主键索引:它是一种特殊的索引,不允许有空值,一般是在创建表的时候同时创建主键索引
-
-
-
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。=> 关于行的设计 通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。
-