1、查询本机MySQL存储引擎相关命令
- 查看当前MySQL使用的是什么存储引擎:show engines;
- 查看当前MySQL所有存储引擎:show variables like '%storage_engine%'
2、MyISAM和InnoDB的区别
对比项 |
MyISAN |
InnoDB |
主外键 |
不支持 |
支持 |
事务 |
不支持 |
支持 |
行表锁 |
支持表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 |
支持行锁,操作时只锁某一行,不对其他行有影响 |
缓存 |
只缓存索引,不缓存真实数据 |
不仅缓存索引还缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响 |
表空间 |
小 |
大 |
关注点 |
性能 |
事务 |
默认安装 |
安装 |
安装 |
2、常见的7种查询类型
- 内连接(取两表的交集):
SELECT<select_list>FROM TableAA INNER JOIN YableB B ON A.Key= B.Key或 SELECT<select_list>FROM TableA A,YableB B ON A.Key= B.Key
- 左连接
SELECT<select_list>FROM TableA A LEFT JOIN TableB B ON A.Key= B.KeyWHERE B.KeyISNULL
- 左外连接
SELECT<select_list>FROM TableA A LEFT JOIN TableB B ON A.Key= B.Key
- 右连接
SELECTselect_list>FROM TableA A RIGHT JOIN TableB B ON A.Key= B.KcyWHEREA.KeyISNULL
- 右外连接
SELECT<selecr_list>FROM TableA A RIGHT JOIN TableB B ON A.Key= B.Key
- 全连接
SELECT<select_list>FROM TableA A LEFT JOIN B ON A.id=B.idunionSELECT<select_list>FROM TableB B LEFT JOIN A ON B.id=A.id
- 两表独有
SELECT<selecn_list>FROM TableA A left join TableB B on A.Key= B.Keywhere B.KeyISNULLunionSELECT<selecn_list>FROM TableA A right join TableB B on A.Key= B.Key WHEREB.KeyISNULL