mysql数据库之MyISAM与InnoDB

看你的mysql现在提供了什么引擎,执行的命令:show engines;

 看你mysql当前默认的存储引擎,执行的命令:show variables like  ‘%storage_engines%’;

MyISAMInnoDB的的区别:

MyISAM

1、不支持外键

2、不支持事务

3、支持表锁,即使操作一条记录也会锁住整个表,不适合高并发操作

4、只支持缓存索引,不缓存真实数据

5、关注点:节省资源、消耗少、简单的业务

 

InnoDB

1、支持外键

2、支持事务

2、支持行锁,操作时只锁某一行,不对其他行有影响,适合高并发操作。

3不仅支持缓存索引,还缓存真实数据,对内存要求较高,而且内存的大小对性能有决定性影响

3、关注点:并发写、事务、更大的资源

 

复杂查询:

#查询两张表:admin_group、admin_log

SELECT * FROM admin_group g

INNER JOIN admin_log  l

ON g.`id`=l.`id`

 

 

执行之后:

索引:

首先自己准备两张表,分别是:myschool、mystudent

 

 

 执行sql语句会出现:Empty set (0.00 sec)

原因:

其实就是提示你实体表为空,说的是你的数据库或表里数据为空,你添加上数据就可以了

使用索引只需要在sql语句前面加explain 关键字即可!

执行语句:Explain select * from myschool s inner join mystudent t on s.id=t.id;

 

Explain 性能分析各字段:

总结:

 id如果相同,可以认为是一组,从上往下顺序执行:

 在所有的组中,id值越大,优先级就越高,越先执行

原文地址:https://www.cnblogs.com/studygithub5208868/p/11568014.html