区别:
1.innodb支持事务,myisam不支持事务。innodb默认AUTOCOMMIT是开启的,每条SQL会默认封装成一个事务
2.innodb支持行级锁定,myisam支持表级锁定
3.innodb支持外键,myisam不支持外键
4.innodb主键范围大,最大是myisam 的2倍
5.innodb不支持全文索引,myisam支持全文索引
二、innodb和myisam检索速度哪个快?
myisam速度快。因为innodb在做select的时候,要维护的东西比myisam引擎多:
1)数据块,INNODB要缓存,MYISAM只缓存索引块, 这中间还有换进换出的减少;
2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快;
INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护MVCC (Multi-Version Concurrency Control)多版本并发控制
三、mysql中的日志
1.重做日志(redo log)
2.回滚日志(undolog)
3.二进制日志(binlog)
4.错误日志(errorlog)
5.慢查询日志(slow query log)
6.一般查询日志(general log)
7.中继日志(relay log)
四、MySQL数据库cpu飙升到500%的话他怎么处理?
1.通过show processlist找到耗时最长的
mysql> show processlist
2.杀掉该进程
mysql> kill xx
3.通过慢查询日志找到具体SQL语句
开启慢查询:
【MySQLd】
slow_query_log = 1 #开启慢查询
long_query_time = 5 #慢查询时间
log_slow_queries = /var/log/mysql/slowquery.log #需有写入权限
4.使用explain优化SQL语句