MySQL中myisam和innodb的区别

  区别:

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语句
 

猜你喜欢

转载自www.cnblogs.com/sjzgk/p/10818840.html