环境:
5.6.17 MySQL Community Server (GPL)
MySql中的数据信息通过不同的技术存储在文件或者内存中,这些不同的技术被称之为存储引擎。
选择不同的存储引擎可以达到不同的服务效果。
5.6.17 MySQL Community Server (GPL)
MySql中的数据信息通过不同的技术存储在文件或者内存中,这些不同的技术被称之为存储引擎。
选择不同的存储引擎可以达到不同的服务效果。
查询MySql支持的存储引擎:
我们得到这样的信息: InnoDB 是默认的存储引擎
表文件:
使用MyISAM存储引擎:
表文件:
mysql> show variables like 'have%';
+----------------------+----------+
| Variable_name | Value |
+----------------------+----------+
| have_compress | YES |
| have_crypt | NO |
| have_csv | YES |
| have_dynamic_loading | YES |
| have_geometry | YES |
| have_innodb | YES |
| have_ndbcluster | NO |
| have_openssl | DISABLED |
| have_partitioning | YES |
| have_profiling | YES |
| have_query_cache | YES |
| have_rtree_keys | YES |
| have_ssl | DISABLED |
| have_symlink | YES |
+----------------------+----------+
14 rows in set (0.05 sec)
mysql> show Engines\g
+--------------------+---------+----------------------------------------------------------------+--------
------+------+------------+
| Engine | Support | Comment | Transac
tions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------
------+------+------------+
| FEDERATED | NO | Federated MySQL storage engine | NULL
| NULL | NULL |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO
| NO | NO |
| MyISAM | YES | MyISAM storage engine | NO
| NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO
| NO | NO |
| CSV | YES | CSV storage engine | NO
| NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO
| NO | NO |
| ARCHIVE | YES | Archive storage engine | NO
| NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES
| YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO
| NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------
------+------+------------+
9 rows in set (0.00 sec)
我们得到这样的信息: InnoDB 是默认的存储引擎
InnoDB 存储引擎在这些方面能体现优势:更新密集的表;事务管理;崩溃修复
缺点:读写效率稍差。
MyIsam 存储引擎曾经是MySql默认的存储引擎。有三种存储格式:静态型,动态型,压缩型。
静态:表的列的大小都是静态的。不用varchar等数据类型
动态:节省空间,但是性能下降。可使用optimize table语句整理碎片
它的优点:占用空间小,速度快。
它的缺点:不支持事务的完整性和并发性
Memory存储引擎:
默认为hash索引,数据存储在内存中,使用它的表的生命周期短,几乎都是一次性的。
也正因为在内存中,速度快,性能提高了,但是不适于长期存储的数据。
使用InnoDB
存储引擎创建表:inno_db
查看文件后缀名。
使用Memory存储引擎创建表:
使用Memory存储引擎创建表:
表文件:
使用MyISAM存储引擎:
表文件: