MySql 基本操作
OriginalAbout 3 min
创建 Schema
创建 Schema 时记得指定 collation, 一般推荐 UTF8mb4_unicode_ci
创建 User
在 mysql.user 里一般存放着 user 的信息
通过CREATE USER 'username'@'host' IDENTIFIED BY 'password';
来创建新用户
'host'是指定允许连接到 MySQL 服务器的主机。可以使用通配符%表示允许来自任何主机的连接,或者使用具体的主机名或 IP 地址。
创建完用户后,可以通过 grant 指令授予权限.
Schema.table
Engine
在创建表时,ENGINE 是用于指定存储引擎的关键字。存储引擎是 MySQL 中负责管理数据存储和检索的组件,它定义了表的底层数据结构、索引类型、事务支持等特性。
MySQL 提供了多种存储引擎,每个存储引擎都有其自己的特点和适用场景。以下是一些常见的存储引擎:
- InnoDB:这是 MySQL 默认的事务性存储引擎。它提供了对事务、行级锁定和崩溃恢复的支持,适用于大多数应用场景。
- MyISAM:这是早期版本的 MySQL 默认存储引擎,适用于读密集的应用。它不支持事务和行级锁定,但具有较低的存储和维护成本。
- Memory:也称为 Heap 存储引擎,将表数据存储在内存中,适用于需要快速读写的临时表或缓存数据。
- Archive:用于高度压缩的只读数据存储,适用于大量历史数据的归档和查询。
- NDB Cluster:适用于 MySQL 集群环境的存储引擎,提供高可用性和分布式存储。
在创建表时,可以使用 ENGINE 关键字指定要使用的存储引擎。例如,创建一个使用 InnoDB 存储引擎的表:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
) ENGINE = InnoDB;如果未指定存储引擎,默认情况下,MySQL 会使用配置文件中的默认存储引擎。可以通过 SHOW ENGINES; 查询当前 MySQL 实例支持的存储引擎以及默认存储引擎。(tencent default 使用的是 InnoDB)
需要根据应用的需求和性能要求选择适当的存储引擎。每个存储引擎都有其自己的优点和限制,因此在选择存储引擎时应仔细考虑应用的特性和需求。
表的优化 - 分区
指定分区规则对表有以下影响:
- 数据存储结构:分区规则决定了数据在物理存储上的组织方式。根据分区规则,表的数据将被分割成多个分区,并分别存储在不同的存储设备或文件中。这种数据存储结构可以提高查询性能、简化数据维护和管理,并支持更高的可扩展性。
- 查询性能:通过合理的分区规则,可以显著提高查询性能。当执行涉及分区键的查询时,数据库管理系统可以仅扫描或访问涉及的分区,而不需要处理整个表。这样可以减少查询的数据量,提高查询效率。
- 数据维护和管理:分区规则可以简化数据的维护和管理。例如,可以通过删除或切换分区来快速清理或归档旧的数据。还可以针对特定的分区应用不同的数据管理策略,例如备份、压缩或索引策略。
- 数据加载和导入:分区规则可以加速数据加载和导入操作。通过并行加载或导入数据到不同的分区,可以提高数据加载的速度。此外,可以仅针对需要更新的分区执行数据导入操作,而不需要处理整个表。
- 可扩展性:分区规则可以支持更高的可扩展性。当数据量增长时,可以通过添加新的分区来扩展表的存储容量和性能,而无需对整个表进行重构。
