一篇文章搞懂 MySQL

打印 上一主题 下一主题

主题 866|帖子 866|积分 2608

MySQL 是一个广泛利用的开源关系型数据库管理系统(RDBMS),它以其高性能、可靠性和易用性而闻名。无论是小型网站照旧大型企业级应用,MySQL 都是一个非常流行的选择。本文将从底子概念、安装设置、SQL 语法、性能优化等方面,带你全面了解 MySQL。
目次
1. MySQL 简介
紧张特点:
2. 安装与设置
2.1 安装 MySQL
在 Linux 上安装 MySQL(以 Ubuntu 为例):
在 Windows 上安装 MySQL:
2.2 设置 MySQL
2.3 连接 MySQL
3. 数据库底子利用
3.1 创建数据库
3.2 选择数据库
3.3 删除数据库
4. SQL 语法
4.1 数据定义语言(DDL)
创建表
修改表结构
删除表
4.2 数据利用语言(DML)
插入数据
更新数据
删除数据
4.3 数据查询语言(DQL)
查询数据
条件查询
排序与分页
4.4 数据控制语言(DCL)
授权
打消权限
5. 索引与优化
5.1 创建索引
5.2 查看索引
5.3 删除索引
5.4 查询优化
6. 事务与锁
6.1 事务
开启事务
提交事务
回滚事务
6.2 锁
显式加锁
7. 备份与规复
7.1 备份数据库
7.2 规复数据库
8. 常见问题与解决方案
8.1 忘记 root 暗码
8.2 数据库连接数过多
8.3 数据库性能降落
总结


1. MySQL 简介

MySQL 是由瑞典公司 MySQL AB 开发的关系型数据库管理系统,后来被 Oracle 公司收购。它支持多用户、多线程,而且可以在多种利用系统上运行,如 Linux、Windows、macOS 等。
紧张特点:



  • 开源免费:社区版免费利用,适合个人和小型企业。
  • 高性能:支持多种存储引擎,如 InnoDB、MyISAM 等,能够处置惩罚大量数据。
  • 可扩展性:支持分布式数据库、主从复制、分区等功能。
  • 易用性:提供了丰富的管理工具和文档,学习曲线较低。
2. 安装与设置

2.1 安装 MySQL

在 Linux 上安装 MySQL(以 Ubuntu 为例):

  1. sudo apt update
  2. sudo apt install mysql-server
  3. sudo systemctl start mysql
  4. sudo systemctl enable mysql
复制代码
在 Windows 上安装 MySQL:


  • 下载 MySQL 安装包(.msi 文件)并运行。
  • 按照安装向导的步调举行安装,设置 root 用户暗码。
2.2 设置 MySQL

安装完成后,可以通过以下下令举行安全设置:
  1. sudo mysql_secure_installation
复制代码
2.3 连接 MySQL

安装完成后,可以通过下令行连接到 MySQL:
  1. mysql -u root -p
复制代码
3. 数据库底子利用

3.1 创建数据库

  1. CREATE DATABASE mydatabase;
复制代码
3.2 选择数据库

  1. USE mydatabase;
复制代码
3.3 删除数据库

  1. DROP DATABASE mydatabase;
复制代码
4. SQL 语法

4.1 数据定义语言(DDL)

创建表

  1. CREATE TABLE users (
  2.     id INT AUTO_INCREMENT PRIMARY KEY,
  3.     username VARCHAR(50) NOT NULL,
  4.     email VARCHAR(100) NOT NULL,
  5.     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  6. );
复制代码
修改表结构

  1. ALTER TABLE users ADD COLUMN age INT;
复制代码
删除表

  1. DROP TABLE users;
复制代码
4.2 数据利用语言(DML)

插入数据

  1. INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
复制代码
更新数据

  1. UPDATE users SET email = 'john_new@example.com' WHERE id = 1;
复制代码
删除数据

  1. DELETE FROM users WHERE id = 1;
复制代码
4.3 数据查询语言(DQL)

查询数据

  1. SELECT * FROM users;
复制代码
条件查询

  1. SELECT * FROM users WHERE age > 18;
复制代码
排序与分页

  1. SELECT * FROM users ORDER BY created_at DESC LIMIT 10 OFFSET 20;
复制代码
4.4 数据控制语言(DCL)

授权

  1. GRANT SELECT, INSERT ON mydatabase.* TO 'username'@'localhost';
复制代码
打消权限

  1. REVOKE INSERT ON mydatabase.* FROM 'username'@'localhost';
复制代码
5. 索引与优化

5.1 创建索引

  1. CREATE INDEX idx_username ON users(username);
复制代码
5.2 查看索引

  1. SHOW INDEX FROM users;
复制代码
5.3 删除索引

  1. DROP INDEX idx_username ON users;
复制代码
5.4 查询优化



  • 利用 EXPLAIN 分析查询性能:
  1. EXPLAIN SELECT * FROM users WHERE age > 18;
复制代码


  • 避免利用 SELECT *,只选择必要的列。
  • 利用合适的索引,避免全表扫描。
6. 事务与锁

6.1 事务

事务是一组原子性的利用,要么全部成功,要么全部失败。
开启事务

  1. START TRANSACTION;
复制代码
提交事务

  1. COMMIT;
复制代码
回滚事务

  1. ROLLBACK;
复制代码
6.2 锁

MySQL 支持行级锁和表级锁,InnoDB 存储引擎默认利用行级锁。
显式加锁

  1. SELECT * FROM users WHERE id = 1 FOR UPDATE;
复制代码
7. 备份与规复

7.1 备份数据库

  1. mysqldump -u root -p mydatabase > mydatabase_backup.sql
复制代码
7.2 规复数据库

  1. mysql -u root -p mydatabase < mydatabase_backup.sql
复制代码
8. 常见问题与解决方案

8.1 忘记 root 暗码


  • 停止 MySQL 服务:
    1. sudo systemctl stop mysql
    复制代码
  • 启动 MySQL 并跳过权限检查:
    1. sudo mysqld_safe --skip-grant-tables &
    复制代码
  • 登录 MySQL 并修改暗码:
    1. UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
    2. FLUSH PRIVILEGES;
    复制代码
  • 重启 MySQL 服务。
8.2 数据库连接数过多



  • 增加最大连接数:
  1. SET GLOBAL max_connections = 500;
复制代码


  • 优化查询,减少长连接。
8.3 数据库性能降落



  • 检查慢查询日记:
  1. SHOW VARIABLES LIKE 'slow_query_log';
复制代码


  • 优化慢查询,添加索引。

总结

MySQL 是一个功能强盛且易于利用的关系型数据库管理系统。通过本文,你已经了解了 MySQL 的底子利用、SQL 语法、索引优化、事务处置惩罚以及备份规复等内容。无论是初学者照旧有履历的开发者,掌握这些知识都能帮助你更好地利用 MySQL 来管理和利用数据。
盼望这篇文章能帮助你快速上手 MySQL,并在实际项目中灵活运用。如果你有更多问题,欢迎查阅 MySQL 官方文档或参考相关书籍和教程。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表