MariaDB or MySQL:
成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、成都網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團成都定制網(wǎng)站等服務(wù)項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:玻璃貼膜等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致認可!非精準描述:
數(shù)據(jù)的存儲是在硬盤上以數(shù)據(jù)流形式存在,讀取文件時,文件先被加載到內(nèi)存中,然后在內(nèi)存中查找所需要的字段,當文件特別大時,文件無法放進內(nèi)存中,而且搜索一個字段也相當浪費時間,所以數(shù)據(jù)庫誕生
數(shù)據(jù)庫是以某種特定格式(格式化或半格式化數(shù)據(jù))存儲, 之后可以建立INDEX(索引)來查找定位某一個數(shù)據(jù)(索引可以分多級),內(nèi)存中就可以只加載索引信息,索引對應(yīng)的數(shù)據(jù)存儲在磁盤上則可以找到數(shù)據(jù),大大的節(jié)約了時間
發(fā)展歷史:
層次模型 --> 網(wǎng)狀模型 --> (Codd) 關(guān)系模型
DBMS 數(shù)據(jù)庫管理系統(tǒng) --> RDBMS 關(guān)系型數(shù)據(jù)庫管理系統(tǒng)
RDBMS:
范式:第一范式、第二范式、第三范式;
表:row(行), column(列);
關(guān)系運算:
選擇: 挑選出符合條件的數(shù)據(jù)
投影: 挑選出指定字段
數(shù)據(jù)庫概念:表、索引、視圖(虛表)、SQL、存儲過程、存儲函數(shù)、觸發(fā)器、事件調(diào)度器;
DDL
DML
約束:
主鍵約束:惟一、非空;一張表只能有一個;定義成為能夠唯一表示一行數(shù)據(jù)在整個表中的內(nèi)容的(一個字段或多個字段的組合)
惟一鍵約束:惟一,可以存在多個;
外鍵約束:參考性約束;表和表之間存在約束關(guān)系.被引用的表上存在主鍵,在引用表上的某一字段一定是在被引用表上存在的數(shù)據(jù)
檢查性約束:check; 定義的數(shù)據(jù)的范圍
三層模型:
物理層 數(shù)據(jù)以數(shù)據(jù)流形式存儲在硬件上 文件系統(tǒng)級別 (系統(tǒng)工程師)
邏輯層 將數(shù)據(jù)流通過特定的結(jié)構(gòu)轉(zhuǎn)化成 (DBA)
視圖層 可視化文本(表) (程序員)
實現(xiàn):
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內(nèi)存)
安裝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
不同的配置文件中出現(xiàn)同一參數(shù)且擁有不同值時,后讀取將為最終生效值;
修改默認讀取的配置文件(mysqld_safe命令):
--defaults-file=file_name
于讀取的默認配置文件之外再加載一個文件:
--defaults-extra-file=path
配置文件格式:ini風(fēng)格的配置文件,能夠為mysql的各種應(yīng)用程序提供配置信息:
配置段:
[mysqld]
[mysqld_safe] 線程安全的MySQL
[mysqld_multi] 一臺主機上運行多個MySQL
[server]
[mysql] 客戶端配置
[mysqldump] 備份 客戶端程序
[client]
...
PARAMETER:
innodb_file_per_table 有些發(fā)行版是 “-”.”_”通用的 而有些是只其中一種
innodb-file-per-table
程序文件:
服務(wù)端程序:mysqld_safe, mysqld_multi
客戶端程序:mysql, mysqldump, mysqladmin 通過mysql協(xié)議能連接到mysql發(fā)起請求并獲取相應(yīng)的
工具程序:myisampack, ...
Yum安裝的mysql啟動后會自動初始化數(shù)據(jù)庫 二進制格式安裝則不會
mysql --> mysql protocol --> mysqld
mysql:交互式CLI工具;
mysql [options] db_name
常用選項:
--host=host_name, -h host_name:服務(wù)端地址;
--user=user_name, -u user_name:用戶名;
--password[=password], -p[password]:用戶密碼;
--port=port_num, -P port_num:服務(wù)端端口;
--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:數(shù)據(jù)壓縮傳輸
--execute=statement, -e statement:非交互模式執(zhí)行SQL語句;
--vertical, -E:查詢結(jié)果縱向顯示;
mysql命令的使用幫助:
# man mysql
# mysql --help --verbose
sql腳本運行:
mysql [options] [DATABASE] < /PATH/FROM/SOME_SQL_SCRIPT
mysqld服務(wù)器程序:工作特性的定義方式
命令行選項
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。