要创建和删除MySQL数据库以及相关的操作:
-
创建数据库:
CREATE DATABASE MyDB_one;
这条命令会创建一个新的数据库名为"MyDB_one"。
-
查看数据库的创建信息:
SHOW CREATE DATABASE MyDB_one;
这将显示数据库"MyDB_one"的详细创建语句,包括其默认的字符集和其他属性。
-
创建数据表(示例未给出,但通常是在已创建的数据库中进行):
USE MyDB_one; // 先切换到MyDB_one CREATE TABLE Employees ( ID INT PRIMARY KEY, Name VARCHAR(50), Position VARCHAR(50) );
-
删除数据库:
DROP DATABASE MyDB_one;
这条命令会永久性地删除名为"MyDB_one"的数据库,务必谨慎使用。
-
数据库编码:
MySQL数据库默认使用utf8mb4
作为字符集,可以使用SHOW VARIABLES LIKE 'character_set_database';
来查看当前数据库的字符集设置。若需要更改,可以用ALTER DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
。 -
存储引擎:
存储引擎如InnoDB、MyISAM等决定了数据库的特性和性能。查询当前数据库的存储引擎使用SHOW ENGINE INNODB STATUS\G
(以InnoDB为例),如果想改变存储引擎,需先备份数据,然后用ALTER DATABASE db_name ENGINE=InnoDB;
。
要查看MySQL的默认存储引擎,你可以执行以下命令:
SHOW VARIABLES LIKE 'default_storage_engine';
这会显示default_storage_engine
变量的当前设置,通常它应该是INNODB
(如果未更改),因为这是MySQL 5.7及以上版本的默认存储引擎。如果你想将其改为MYISAM
,则需要通过MySQL管理工具或SQL语句来修改这个配置,但请注意,这不是常规操作,因为它可能影响数据库性能。
MySQL中除了默认的存储引擎,还有以下几种常见的存储引擎:
-
InnoDB:这是MySQL最常用的存储引擎之一,主要用于事务处理,支持行级锁定,适用于大型数据库应用。
-
MyISAM:这是MySQL早期的默认存储引擎,不支持事务,但读取速度快,适合大量读操作。
-
MEMORY(哈希):存储引擎直接在内存中,非常适合临时表或者缓存数据,写入速度极快但不持久化。
-
NDB Cluster:分布式存储引擎,用于高可用性和大规模并发,专为在线交易处理设计。
-
ARCHIVE:压缩文件存储引擎,适合大量归档数据,访问速度较慢。
-
CSV:存储CSV格式的数据,易于导入导出。
-
BLACKHOLE:黑洞引擎,数据写入后会被丢弃,常用于日志备份。
-
FEDERATED:跨服务器查询引擎,但在MySQL 8.0以后不再推荐使用。
每个存储引擎都有其特定的优势和适用场景,选择合适的存储引擎取决于具体的应用需求,比如事务处理的需求、性能优先级、数据持久性等。
MyISAM是MySQL早期的默认存储引擎,在5.5版本之前,它以简单快速著称,但不支持事务处理,也就是说,一旦数据写入MyISAM表,除非完全关闭数据库,否则不能回滚事务。
相比之下,InnoDB是后来引入的存储引擎,它内置于事务支持。InnoDB采用B+树索引结构,并实现了行级锁定,这意味着每个事务可以独立操作一行或多行数据,而不会阻塞其他事务对其他数据的操作。这种设计允许InnoDB支持ACID(原子性、一致性、隔离性和持久性)事务,非常适合需要频繁更新和保证数据完整性的应用场景。因此,对于高并发和数据一致性的场景,InnoDB通常是更好的选择。