数据库存储引擎是数据库管理系统中的一个模块,负责管理数据在磁盘上的存储和检索。它定义了数据在物理存储介质上的组织结构,包括表、索引等。存储引擎的工作涉及到将逻辑数据模型转化为物理存储结构,以提高数据的访问效率。
不同的数据库系统支持不同的存储引擎,而每种引擎都有其独特的特点、优势和适用场景。一些常见的数据库存储引擎包括InnoDB、MyISAM、SQLite的默认存储引擎等四大引擎。它们可能使用不同的数据结构、索引算法和缓存机制,因此在选择存储引擎时需要考虑到应用的性能需求、并发处理能力、事务支持等因素。
记录MySQL系统自身数据的数据库,即系统数据库
在MySQL中,有一些系统数据库用于存储系统元数据和执行特定的功能。以下是一些常见的MySQL系统数据库:
information_schema:
mysql:
user
、db
、tables_priv
等,包含了关于用户、数据库和表级别的权限信息。performance_schema:
performance_schema
提供了关于MySQL服务器性能的信息。这个数据库包含了许多表,记录了例如锁、查询性能、线程活动等方面的统计信息。sys:
performance_schema
中的数据,并提供了一组存储过程和视图,用于更方便地查看和分析性能统计信息。-- 创建数据库
CREATE DATABASE if not exists my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 查询所有数据库
SHOW DATABASES;
-- 使用数据库
use DATABASES;
-- 修改数据库字符集
ALTER DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 删除数据库
DROP DATABASE my_database;
权限信息存储在 mysql 系统库的 user、db、tables_priv、columns_priv、procs_priv 这几个系统表中。
数据库范式是一种规范化数据库设计的方法,通过分解表结构并消除冗余数据,以提高数据库的一致性和性能。关系数据库理论中提出了三大范式,它们是:
第一范式(1NF):列不可再分
第二范式(2NF):主键约束
第三范式(3NF):外键约束
这三个范式是逐步递进的,第一范式是基础,第二范式在此基础上消除了部分依赖,第三范式在第二范式的基础上消除了传递依赖。范式的遵循有助于提高数据库的规范性、减少冗余数据,并提高数据的一致性和可维护性。
优化原则
基本数据类型
整数类型:
浮点数类型:
定点数类型:
字符串类型:
日期与时间类型:
布尔类型:
二进制类型:
枚举类型:
MySQL 8.0 版本的账号管理操作基本上延续了之前版本的基本语法,但引入了一些新的特性。以下是一些 MySQL 8.0 中的数据库用户账号管理操作:
创建账号:
CREATE USER
语句创建一个新的数据库用户。CREATE USER 'username'@'host' IDENTIFIED BY 'password';
'username'
是要创建的用户名,'host'
是允许访问的主机,'password'
是用户的密码。授予权限:
GRANT
语句给用户授予数据库权限。GRANT privileges ON database.table TO 'username'@'host';
privileges
表示授予的权限,比如 SELECT
, INSERT
, UPDATE
, DELETE
等;database.table
表示具体的数据库和表;'username'@'host'
是目标用户和允许访问的主机。修改账号权限:
GRANT
或 REVOKE
语句修改用户的权限。GRANT privileges ON database.table TO 'username'@'host';
REVOKE privileges ON database.table FROM 'username'@'host';
GRANT
授予权限,REVOKE
撤销权限。删除账号:
DROP USER
语句删除一个数据库用户。DROP USER 'username'@'host';
修改密码:
ALTER USER
语句修改用户密码。ALTER USER 'username'@'host' IDENTIFIED BY 'newpassword';
'newpassword'
是新的密码。查看用户权限:
SHOW GRANTS
语句查看用户的权限。SHOW GRANTS FOR 'username'@'host';
账号锁定和解锁:
ALTER USER
语句可以锁定或解锁用户账号。ALTER USER 'username'@'host' ACCOUNT LOCK;
ALTER USER 'username'@'host' ACCOUNT UNLOCK;
账号过期:
ALTER USER
语句可以设置账号的过期时间。ALTER USER 'username'@'host' PASSWORD EXPIRE;
这些是 MySQL 8.0 中一些常见的数据库用户账号管理操作。在执行这些操作时,请务必根据实际情况谨慎操作,尤其是在生产环境中。