您好,登錄后才能下訂單哦!
MariaDB or MySQL:
非精準描述:
數據的存儲是在硬盤上以數據流形式存在,讀取文件時,文件先被加載到內存中,然后在內存中查找所需要的字段,當文件特別大時,文件無法放進內存中,而且搜索一個字段也相當浪費時間,所以數據庫誕生
數據庫是以某種特定格式(格式化或半格式化數據)存儲, 之后可以建立INDEX(索引)來查找定位某一個數據(索引可以分多級),內存中就可以只加載索引信息,索引對應的數據存儲在磁盤上則可以找到數據,大大的節(jié)約了時間
發(fā)展歷史:
層次模型 --> 網狀模型 --> (Codd) 關系模型
DBMS 數據庫管理系統(tǒng) --> RDBMS 關系型數據庫管理系統(tǒng)
RDBMS:
范式:第一范式、第二范式、第三范式;
表:row(行), column(列);
關系運算:
選擇: 挑選出符合條件的數據
投影: 挑選出指定字段
數據庫概念:表、索引、視圖(虛表)、SQL、存儲過程、存儲函數、觸發(fā)器、事件調度器;
DDL
DML
約束:
主鍵約束:惟一、非空;一張表只能有一個;定義成為能夠唯一表示一行數據在整個表中的內容的(一個字段或多個字段的組合)
惟一鍵約束:惟一,可以存在多個;
外鍵約束:參考性約束;表和表之間存在約束關系.被引用的表上存在主鍵,在引用表上的某一字段一定是在被引用表上存在的數據
檢查性約束:check; 定義的數據的范圍
三層模型:
物理層 數據以數據流形式存儲在硬件上 文件系統(tǒng)級別 (系統(tǒng)工程師)
邏輯層 將數據流通過特定的結構轉化成 (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位系統(tǒng)只能使用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 有些發(fā)行版是 “-”.”_”通用的 而有些是只其中一種
innodb-file-per-table
程序文件:
服務端程序:mysqld_safe, mysqld_multi
客戶端程序:mysql, mysqldump, mysqladmin 通過mysql協(xié)議能連接到mysql發(fā)起請求并獲取相應的
工具程序: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}:
本地通信:基于本地回環(huán)地址進行請求,將基于本地通信協(xié)議;
Linux:SOCKET
Windows:PIPE,MEMORY
非本地通信:使用非本地回環(huán)地址進行的請求; TCP協(xié)議;
--socket=path, -S path
--database=db_name, -D db_name:
--compress, -C:數據壓縮傳輸
--execute=statement, -e statement:非交互模式執(zhí)行SQL語句;
--vertical, -E:查詢結果縱向顯示;
mysql命令的使用幫助:
# man mysql
# mysql --help --verbose
sql腳本運行:
mysql [options] [DATABASE] < /PATH/FROM/SOME_SQL_SCRIPT
mysqld服務器程序:工作特性的定義方式
命令行選項
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。