MySQL常用SQL语句


收录一些经常用到的sql

数据库相关

建数据库

CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];

例如:
CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

表相关

建表

DROP TABLE IF EXISTS `test_table`;
CREATE TABLE `test_table`(
    id int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
    name varchar(50),
    length decimal(5, 2),
    UNIQUE INDEX length(id ASC)
) ENGINE = InnoDB DEFAULT CHARSET=utf8;

索引相关

添加索引

添加PRIMARY KEY主键索引

ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 

添加UNIQUE唯一索引

ALTER TABLE `table_name` ADD UNIQUE (`column` ) 

添加普通索引

ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 

添加FULLTEXT全文索引

ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 

添加多列索引

ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

编码相关

查看数据库编码。

SHOW variables LIKE '%char%';

查看表编码

SHOW CREATE TABLE <表名>;

查看字段编码

mysql> SHOW FULL COLUMNS FROM t_user;
+--------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+-----------+
| Field  | Type        | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment   |
+--------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+-----------+
| ID     | int         | NULL            | NO   | PRI | NULL    | auto_increment | select,insert,update,references | 主键      |
| NAME   | varchar(64) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references | 名字      |
| GENDER | varchar(5)  | utf8_general_ci | YES  | MUL | NULL    |                | select,insert,update,references | 性别      |
| MOBILE | varchar(11) | utf8_general_ci | YES  | MUL | NULL    |                | select,insert,update,references | 手机号    |
+--------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+-----------+
4 rows in set (0.00 sec)

修改编码格式
修改数据库编码格式
alter database <数据库名> character set utf8mb4;
例:alter database db_user character set utf8mb4;
修改表编码
alter table <表名> character set utf8mb4;
例:alter table user character set utf8mb4;

修改字段编码

ALTER TABLE <表名> MODIFY COLUMN <字段名> <字段类型> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
例:ALTER TABLE comment MODIFY COLUMN content VARCHAR(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

系统变量相关

查询数据目录:SHOW VARIABLES LIKE 'datadir';

查看MySQL服务器配置信息

SHOW VARIABLES;

查看MySQL服务器运行的各种状态值

SHOW GLOBAL status;

慢查询日志

SHOW variables LIKE '%slow%';

最大连接数

SHOW variables LIKE 'max_connections';
SHOW GLOBAL status LIKE 'max_used_connections';

内存配置

MySQL的内存使用分为全局内存和会话内存两大部分:

  • 全局内存:由所有线程共享的内存区域,如InnoDB缓冲池、查询缓存等。
  • 会话内存:每个会话独立使用的内存区域,如排序缓冲区、临时表等。

在MySQL中,有多种内存配置参数,用于控制数据库的内存使用情况。以下是一些常见的内存配置参数:

全局内存参数

  1. innodb_buffer_pool_size:InnoDB缓冲池大小,是存储引擎最主要的内存配置参数之一。
  2. query_cache_size:查询缓存的大小。
  3. key_buffer_size:MyISAM存储引擎的键缓存大小。

会话内存参数

  1. sort_buffer_size:每个线程排序时使用的缓冲区大小。
  2. read_buffer_size:每个线程读数据时使用的缓冲区大小。
  3. join_buffer_size:每个线程进行联接操作时使用的缓冲区大小。
  4. tmp_table_size:临时表的最大大小。

查看状态

SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';
SHOW GLOBAL STATUS LIKE 'Key_%';
SHOW GLOBAL STATUS LIKE 'Threads%';
SHOW GLOBAL STATUS LIKE 'Connections';

查看变量

SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';
SHOW GLOBAL STATUS LIKE 'Key_%';
SHOW GLOBAL STATUS LIKE 'Threads%';
SHOW GLOBAL STATUS LIKE 'Connections';

使用performance_schema表

SELECT * FROM performance_schema.memory_summary_global_by_event_name
WHERE event_name LIKE 'memory/%';
posted @ 2025-08-04 19:56  vonlinee  阅读(6)  评论(0)    收藏  举报