1.忘记mysql登陆密码
修改my.cnf
在最后添加 skip-grant-tables
重启mysql
进入mysql
select mysql;
update user set password=password("123") where user='root';
删除掉 skip-grant-tables
2.mysql的表类型(存储引擎)
特点 | Misam | BDB | Memory | InnoDB | Archive |
存储限制 | 没有 | 没有 | 有 | 64TB | 没有 |
事务安全 | 支持 | 支持 | |||
锁机制 | 表锁 | 页锁 | 表锁 | 行锁 | 行锁 |
B 树索引 | 支持 | 支持 | 支持 | 支持 | |
哈希索引 | 支持 | 支持 | |||
全文索引 | 支持 | ||||
集群索引 | 支持 | ||||
数据缓存 | 支持 | 支持 | |||
索引缓存 | 支持 | 支持 | 支持 | ||
数据可压缩 | 支持 | 支持 | |||
空间使用 | 低 | 低 | N/A | 高 | 非常低 |
内存使用 | 低 | 低 | 中等 | 高 | 低 |
批量插入的速度 | 高 | 高 | 高 | 低 | 非常高 |
支持外键 | 支持 |
3 根据存储引擎的不同选择合适的数据存储类型。
MyISAM 数据存储引擎和数据列
MyISAM数据表,最好使用固定长度的数据列代替可变长度的数据列。
MEMORY存储引擎和数据列
MEMORY数据表目前都使用固定长度的数据行存储,因此无论使用CHAR或VARCHAR列都没
有关系。两者都是作为CHAR类型处理的。
InnoDB 存储引擎和数据列
建议使用 VARCHAR类型
对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行
都使用指向数据列值的头指针),因此在本质上,使用固定长度的 CHAR列不一定比使
用可变长度VARCHAR列简单。因而,主要的性能因素是数据行使用的存储总量。由于CHAR
平均占用的空间多于VARCHAR,因 此使用VARCHAR来最小化需要处理的数据行的存储总
量和磁盘I/O是比较好的。
4..mysql中列的数据类型
TINYINT | 一个很小的整数 |
---|---|
SMALLINT | 一个小整数 |
MEDIUMINT | 一个中等大小整数 |
INT、INTEGER | 一个正常大小整数 |
BIGINT | 一个大整数 |
FLOAT | 一个小(单精密)浮点数字 |
DOUBLE | 一个正常大小(双精密)浮点数字 |
DOUBLE PRECISION | |
REAL | |
DECIMAL | 一个未压缩(unpack)的浮点数字“未压缩”意味着数字作为一个字符串被存储 |
NUMERIC | |
CHAR | 一个定长字符串 |
---|---|
VARCHAR | 一个变长字符串 |
TINYBLOB | 最大长度为 255(2^8-1)个字符的BLOB 或 TEXT 列 |
TINYTEXT | |
BLOB | 最大长度为 65535(2^16-1)个字符的BLOB 或 TEXT 列 |
TEXT | |
MEDIUMBLOB | 最大长度为 16777215(2^24-1)个字 符的 BLOB 或 TEXT 列 |
MEDIUMTEXT | |
LONGBLOB | 最大长度为4294967295(2^32-1)个 字符的 BLOB 或 TEXT 列 |
LONGTEXT | |
ENUM('value1','value2',... ) | 枚举:列只能赋值为某个枚举成员 或 NULL |
SET('value1','value2',...) | 集合:列可以赋值为多个集合成员 或 NULL |
DATE |
一个日期,以'YYYY-MM-DD'格式
来显示
|
---|---|
TIME | 一个时间戳 |
DATETIME | 一个日期和时间组合,以'YYYY- MM-DD HH:MM:SS'格式来显示 |
TIMESTAMP | 以 YYYMMDDHHMMSS 格式来显示 |