首页 > 数据库 >MySQL(1)

MySQL(1)

时间:2024-07-24 17:27:34浏览次数:19  
标签:name 缓冲 数据库 MySQL SQL 组件 table

文章目录

概述

数据库

**按照数据结构来组织、存储和管理数据的仓库;**是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合;

OLTP

OLTP(online transaction processing)翻译为联机事务处理;主要对数据库增删改查;

OLTP主要用来记录某类业务事件的发生;数据会以增删改的方式在数据库中进行数据的更新处理
操作,要求实时性高、稳定性强、确保数据及时更新成功;

OLAP

OLAP(On-Line Analytical Processing)翻译为联机分析处理;主要对数据库查询;

当数据积累到一定的程度,我们需要对过去发生的事情做一个总结分析时,就需要把过去一段时间
内产生的数据拿出来进行统计分析,从中获取我们想要的信息,为公司做决策提供支持,这时候就
是在做OLAP了;

SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数
据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL是关系数据
库系统的标准语言。
关系型数据库包括:MySQL, SQL Server, Oracle, Sybase, postgreSQL 以及 MS Access等;
SQL命令包括:DQL、DML、DDL、DCL以及TCL;

DQL

Data Query Language - 数据查询语言;
select :从一个或者多个表中检索特定的记录;

DML

Data Manipulate Language - 数据操作语言;
insert :插入记录;
update :更新记录;
delete :删除记录

DDL

Data Define Languge - 数据定义语言;
create :创建一个新的表、表的视图、或者在数据库中的对象;
alter :修改现有的数据库对象,例如修改表的属性或者字段;
drop :删除表、数据库对象或者视图;

DCL

Data Control Language - 数据控制语言;
grant :授予用户权限;
revoke :收回用户权限;

TCL

Transaction Control Language - 事务控制语言;
commit :事务提交;
rollback :事务回滚;

MYSQL

MySQL由以下几部分组成:
连接池组件、管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲组件、插
件式存储引擎、物理文件。

连接池

管理缓冲用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求;
网络处理流程:主线程接收连接,接收连接交由连接池处理;
主要处理方式:IO多路复用select + 阻塞的io;
需要理解:MySQL命令处理是并发处理的;

主线程负责接收客户端连接,然后为每个客户端 fd 分配一个连接线程,负责处理该客户端的 sql
命令处理;

管理服务和工具组件

系统管理和控制工具,例如备份恢复、Mysql复制、集群等;

SQL接口

将SQL语句解析生成相应对象;DML,DDL,存储过程,视图,触发器等;

查询解析器

将SQL对象交由解析器验证和解析,并生成语法树;

查询优化器

SQL语句执行前使用查询优化器进行优化;

缓冲组件

是一块内存区域,用来弥补磁盘速度较慢对数据库性能的影响;在数据库进行读取页操作,首先将
从磁盘读到的页存放在缓冲池中,下一次再读相同的页时,首先判断该页是否在缓冲池中,若在缓
冲池命中,直接读取;否则读取磁盘中的页,说明该页被LRU淘汰了;缓冲池中LRU采用最近最少
使用算法来进行管理;
缓冲池缓存的数据类型有:索引页、数据页、以及与存储引擎缓存相关的数据(比如innodb引
擎:undo页、插入缓冲、自适应hash索引、innodb相关锁信息、数据字典信息等);

CRUD

创建数据库

CREATE DATABASE `数据库名` DEFAULT CHARACTER SET utf8;

删除数据库

DROP DATABASE `数据库名`;

选择数据库

USE `数据库名`;

创建表

CREATE TABLE `table_name` (column_name column_type);
CREATE TABLE IF NOT EXISTS `0voice_tbl` (
`id` INT UNSIGNED AUTO_INCREMENT COMMENT '编号',
`course` VARCHAR(100) NOT NULL COMMENT '课程',
`teacher` VARCHAR(40) NOT NULL COMMENT '讲师',
`price` DECIMAL(8,2) NOT NULL COMMENT '价格',
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT = '课程表';

删除表

DROP TABLE `table_name`;

清空数据表

TRUNCATE TABLE `table_name`; -- 截断表 以页为单位(至少有两行数据),有自增索引的话,从初始值开始累加
DELETE TABLE `table_name`; -- 逐行删除,有自增索引的话,从之前值继续累加

INSERT INTO `table_name`(`field1`, `field2`, ..., `fieldn`) VALUES (value1,
value2, ..., valuen);

DELETE FROM `table_name` [WHERE Clause];

UPDATE table_name SET field1=new_value1, field2=new_value2 [,
fieldn=new_valuen]

SELECT field1, field2,...fieldN FROM table_name
[WHERE Clause]

小结

数据库这节开始写,好久没写数据库,觉得有点陌生了,现在复习下,顺便记录下。重新学习一遍,每一遍都有不一样的体会,可能就是刻意练习里的心理表征吧。这篇就写到这吧。感兴趣吗,可以一起学习学习。OK,结束,下一篇,继续。

标签:name,缓冲,数据库,MySQL,SQL,组件,table
From: https://blog.csdn.net/Vjunjun/article/details/140621895

相关文章

  • MySQL 学习笔记 基础(多表查询下,事务)
    多表查询 多表查询-子查询概念:SQL语句中嵌套SELECT语句,称为嵌套语句,又称子查询。SELECT*FROMt1WHEREcolumn=(SELECTcolumn1FROMt2);子查询外部的语句可以是INSERT/UPDATE/DELETE/SELECT的任何一个。根据子查询结果不同,分为:·标量子查询......
  • MySQL中多表查询之外连接
     首先先来介绍一下我做的两个表,然后再用他们两个举例说明。--创建教师表createtableteachers(id_tintprimarykeyauto_increment,--老师编号name_tvarchar(5)--姓名);--创建学生表createtablestudents(id_sintprimarykeyauto_increment,--编号na......
  • MYSQL中SHOW PROCESSLIST使用
    SHOWPROCESSLIST是显示用户正在运行的线程,需要注意的是,除了root用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS权限。通常我们通过top检查发现mysqlCPU或者iowait过高那么解决这些问题......
  • Mysql性能优化
    以下配置需要找到MySQL的my.cnf的配置文件,在文件中修改,增加或者修改以下配置字符集character_set_server=utf8init-connect='SETNAMESutf8'validate_password=OFF大小写lower_case_table_names=1扩展设置最大链接数初始100,链接超过之后就不能连接max_connections=5......
  • mysql join、leftjoin、rightjoin、unijoin使用解释
    参考文章:https://blog.csdn.net/chenmozhe22/article/details/832424811.左连接------leftjoin:查询的结果为:两个表格通过on关联的行,显示两个表格的该行的字段左表所有数据信息全部不变,右表再去匹配左表如果左边表格有数据,但右边表格没数据,则右表则使用null填充table:students......
  • MySQL 8.0 字符集与比较规则介绍
    前言:我们都知道MySQL8.0与MySQL5.7的区别之一就是默认字符集从latin1改成了utf8mb4,除此之外,MySQL8.0下的字符集和比较规则还有没有其他变化呢?本篇文章我们一起来学习下。utf8mb4字符集在MySQL8.0中,utf8mb4字符集是默认的字符集设置,它是一个真正的4字节UTF-......
  • 快速在线安装mysql5.7
    在线安装安装mysql安装源下载安装包wgethttps://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装MySQL源yum-ylocalinstallmysql57-community-release-el7-11.noarch.rpm安装mysqlyum-yinstallmysql-community-server--nogpgcheck启动mysql......
  • 超强mysql灾难恢复工具--ibd2sql
    超强mysql灾难恢复工具--ibd2sql小董学编程 DBA札记  2024年07月19日16:51 上海 1人听过DBA札记dba数据库知识科普踩坑指南经验分享原理解读88篇原创内容公众号前言昨晚23:00,刚躺到床上准备刷会儿抖音睡了。好友微信视频求救,说他的mysql......
  • pyMysql插入数据格式化问题!(秒解决)
    运行以下代码出现的问题:%dformat:anumberisrequired,notstr。username=input("请输入用户名:")password=input("请输入密码:")password=hashlib.md5(password.encode("utf-8")).hexdigest()real_name=input("请输入真实姓名:")......
  • [Mysql]InnoDB和MyISAM
    InnoDB和MyISAMInnoDB和MyISAM是MySQL数据库系统中最常用的两种存储引擎。它们各自拥有不同的特性和优化点,适用于不同的应用场景。以下是它们之间的一些主要区别:事务支持InnoDB:支持事务(ACID兼容)。它提供了提交、回滚和崩溃恢复功能,非常适合处理大量的短期事务。InnoDB的事务......