MyISAM、InnoDB基础
区别 | MyISAM | InnoDB |
---|---|---|
事务 | 强调性能,不支持事务。 默认不是事物安全的 | 支持事物 |
外键 | 不支持外键 | 支持外键 |
表锁 | 只支持表级锁(不支持高并发,以读为主) | 支持事务和行级锁是innoDb最大的特色,行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都会锁全表的。 |
选择 | 执行大量select,myisam是最好的选择 | 执行大量的update和insert最好用innodb。 |
存储 | myisam在磁盘上存储上有三个文件.frm(存储表定义).myd(存储表数据).myi(存储表索引)单表最大64T | innodb磁盘上存储的是表空间数据文件和日志文件,innodb表大小只受限于操作系统大小。 |
保存 | 保存表具体行数 | 不保存具体行数 |
索引 | 使用非聚集索引,索引和数据分开,只缓存索引 | 使用聚集索引,索引和数据存在一个文件 |
默认版本 | MySQL 5.1之前建表默认MyISAM | MySQL 5.1之后建表默认InnoDB |
SQL:
1.替换多个字符串
SELECT DISTINCT
REPLACE(
REPLACE(
REPLACE(c, '"', ''),
' ',
''
),
'#',
''
)
FROM
testcc_test