千家信息网

Linux_MySQL二次整理(1)

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,MariaDB or MySQL:非精准描述:数据的存储是在硬盘上以数据流形式存在,读取文件时,文件先被加载到内存中,然后在内存中查找所需要的字段,当文件特别大时,文件无法放进内存中,而且搜索一个字段
千家信息网最后更新 2024年11月22日Linux_MySQL二次整理(1)

MariaDB or MySQL:

非精准描述:

数据的存储是在硬盘上以数据流形式存在,读取文件时,文件先被加载到内存中,然后在内存中查找所需要的字段,当文件特别大时,文件无法放进内存中,而且搜索一个字段也相当浪费时间,所以数据库诞生

数据库是以某种特定格式(格式化或半格式化数据)存储, 之后可以建立INDEX(索引)来查找定位某一个数据(索引可以分多级),内存中就可以只加载索引信息,索引对应的数据存储在磁盘上则可以找到数据,大大的节约了时间

发展历史:

层次模型 --> 网状模型 --> (Codd) 关系模型

DBMS 数据库管理系统 --> RDBMS 关系型数据库管理系统

RDBMS:

范式:第一范式、第二范式、第三范式;

表:row(行), column(列);

关系运算:

选择: 挑选出符合条件的数据

投影: 挑选出指定字段

数据库概念:表、索引、视图(虚表)、SQL、存储过程、存储函数、触发器、事件调度器;

DDL

DML

约束:

主键约束:惟一、非空;一张表只能有一个;定义成为能够唯一表示一行数据在整个表中的内容的(一个字段或多个字段的组合)

惟一键约束:惟一,可以存在多个;

外键约束:参考性约束;表和表之间存在约束关系.被引用的表上存在主键,在引用表上的某一字段一定是在被引用表上存在的数据

检查性约束:check; 定义的数据的范围

三层模型:

物理层 数据以数据流形式存储在硬件上 文件系统级别 (系统工程师)

逻辑层 将数据流通过特定的结构转化成 (DBA)

视图层 可视化文本(表) (程序员)

实现:

Oracle, DB2, Sybase, Infomix, SQL Server;

MySQL, MariaDB, PostgreSQL, SQLite;

MySQL:

5.1 --> 5.5 --> 5.6 --> 5.7

MariaDB:5.5.x --> 10.x





特性:

插件式存储引擎

单进程多线程(32位系统只能使用3G内存)

安装MySQL:

OS Vendor:rpm

MySQL:

source code:cmake (编译器)

binary package: 通用二进制包

i686, x86_64;

glibc VERSION (要求glibc的版本 )

prepackage:rpm, deb

os, arch,

配置文件:

读取多处的多个配置文件,而且会以指定的次序的进行;

# my_print_defaults 查看配置生效次序

Default options are read from the following files in the given order:

/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

不同的配置文件中出现同一参数且拥有不同值时,后读取将为最终生效值;

修改默认读取的配置文件(mysqld_safe命令):

--defaults-file=file_name

于读取的默认配置文件之外再加载一个文件:

--defaults-extra-file=path

配置文件格式:ini风格的配置文件,能够为mysql的各种应用程序提供配置信息:

配置段:

[mysqld]

[mysqld_safe] 线程安全的MySQL

[mysqld_multi] 一台主机上运行多个MySQL

[server]

[mysql] 客户端配置

[mysqldump] 备份 客户端程序

[client]

...

PARAMETER:

innodb_file_per_table 有些发行版是 "-"."_"通用的 而有些是只其中一种

innodb-file-per-table

程序文件:

服务端程序:mysqld_safe, mysqld_multi

客户端程序:mysql, mysqldump, mysqladmin 通过mysql协议能连接到mysql发起请求并获取相应的

工具程序:myisampack, ...

Yum安装的mysql启动后会自动初始化数据库 二进制格式安装则不会

mysql --> mysql protocol --> mysqld

mysql:交互式CLI工具;

mysql [options] db_name

常用选项:

--host=host_name, -h host_name:服务端地址;

--user=user_name, -u user_name:用户名;

--password[=password], -p[password]:用户密码;

--port=port_num, -P port_num:服务端端口;

--protocol={TCP|SOCKET|PIPE|MEMORY}:

本地通信:基于本地回环地址进行请求,将基于本地通信协议;

Linux:SOCKET

Windows:PIPE,MEMORY

非本地通信:使用非本地回环地址进行的请求; TCP协议;

--socket=path, -S path

--database=db_name, -D db_name:

--compress, -C:数据压缩传输

--execute=statement, -e statement:非交互模式执行SQL语句;

--vertical, -E:查询结果纵向显示;

mysql命令的使用帮助:

# man mysql

# mysql --help --verbose

sql脚本运行:

mysql [options] [DATABASE] < /PATH/FROM/SOME_SQL_SCRIPT

mysqld服务器程序:工作特性的定义方式

命令行选项


0