MySQL有哪些入門知識

不知道大家之前對類似MySQL有哪些入門知識的文章有無了解,今天我在這里給大家再簡單的講講。感興趣的話就一起來看看正文部分吧,相信看完MySQL有哪些入門知識你一定會有所收獲的。                                                           

創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鷹潭企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設計,鷹潭網(wǎng)站改版等技術服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

1、mysql簡介
	優(yōu)勢
		簡單易用:MySQL 是一個高性能且相對簡單的數(shù)據(jù)庫系統(tǒng),與一些更大系統(tǒng)的設置和管理相比,其復雜程度較低。
		價格:MySQL 對多數(shù)個人用戶來說是免費的。
		小巧:安裝包占用的磁盤空間小
		支持查詢語言:MySQL 可以利用 SQL(結(jié)構(gòu)化查詢語言),SQL 是一種所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)都選用的語言。也可以利用支持 ODBC(開放式數(shù)據(jù)庫連接)的應用程序,ODBC 是 Microsoft 開發(fā)的一種數(shù)據(jù)庫通信協(xié)議。
		性能:許多客戶機可同時連接到云服務器。MySQL數(shù)據(jù)庫沒有用戶數(shù)的限制,多個客戶機可同時使用同一個數(shù)據(jù)庫??衫脦讉€輸入查詢并查看結(jié)果的界面來交互 式地訪問 MySQL。這些界面為:命令行客戶機程序、Web 瀏覽器或 X Window System 客戶機程序。此外,還有由各種語言(如C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl)編寫的界面。因此,可以選擇使用已編好的客戶機程序或編寫自己的客戶機應用程序。
		連接性和安全性:MySQL 是完全網(wǎng)絡化的,其數(shù)據(jù)庫可在因特網(wǎng)上的任何地方訪問,因此,可以和任何地方的任何人共享數(shù)據(jù)庫。而且 MySQL 還能進行訪問控制,可以控制哪些人不能看到您的數(shù)據(jù)。
		可移植性:MySQL 可運行在各種版本的 UNIX 以及其他非 UNIX 的系統(tǒng)(如 Windows 和 OS/2)上。MySQL 可運行在從家用 PC 到高級的服務器上。
		開放式的分發(fā):MySQL 容易獲得;只要使用 Web 瀏覽器即可。如果不能理解某樣東西是如何起作用的,或者對某個算法感到好奇,可以將其源代碼取來,對源代碼進行分析。如果不喜歡某些東西,則可以更改它。
		速度:MySQL 運行速度很快。開發(fā)者聲稱 MySQL 可能是目前能得到的最快的數(shù)據(jù)庫。
	適用場景
		web網(wǎng)站系統(tǒng)
		日志倉庫系統(tǒng)
		數(shù)據(jù)倉庫系統(tǒng)
2、mysql5.7版本特性
	支持systemd
	更好的性能:對于多核心CPU、固態(tài)硬盤、鎖有更好的優(yōu)化
	更好的innodb存儲引擎
	更好的復制功能
3、mysql鎖的概念
	1、分類
		表級鎖:開銷小,加鎖快;不會出現(xiàn)死鎖;鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低;MyISAM,MEMORY,CSV
		行級鎖:開銷大,加鎖慢;會出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高;InnoDB
		頁面鎖:開銷和加鎖時間界于表鎖和行鎖之間;會出現(xiàn)死鎖;鎖定粒度界于表鎖和行鎖之間,并發(fā)度一般;BerkeleyDB
	2、死鎖
		產(chǎn)生原因:	
			互斥條件:資源是獨占的且排他使用,進程互斥使用資源,即任意時刻一個資源只能給一個進程使用,其他進程若申請一個資源,而該資源被另一進程占有時,則申請者等待直到資源被占有者釋放。
			不可剝奪條件:進程所獲得的資源在未使用完畢之前,不被其他進程強行剝奪,而只能由獲得該資源的進程資源釋放。
			請求和保持條件:進程每次申請它所需要的一部分資源,在申請新的資源的同時,繼續(xù)占用已分配到的資源。
			循環(huán)等待條件:在發(fā)生死鎖時必然存在一個進程等待隊列{P1,P2,…,Pn},其中P1等待P2占有的資源,P2等待P3占有的資源,…,Pn等待P1占有的資源,形成一個進程等待環(huán)路,環(huán)路中每一個進程所占有的資源同時被另一個申請,也就是前一個進程占有后一個進程所深情地資源。
		解決方法:(原則:通過破壞死鎖產(chǎn)生的4個必要條件來預防死鎖)
			破壞不可剝奪條件:一個進程不能獲得所需要的全部資源時便處于等待狀態(tài),等待期間他占有的資源將被隱式的釋放重新加入到系統(tǒng)的資源列表中,可以被其他的進程使用,而等待的進程只有重新獲得自己原有的資源以及新申請的資源才可以重新啟動,執(zhí)行。
			破壞請求與保持條件:第一種方法靜態(tài)分配即每個進程在開始執(zhí)行時就申請他所需要的全部資源。第二種是動態(tài)分配即每個進程在申請所需要的資源時他本身不占用系統(tǒng)資源。
			破壞循環(huán)等待條件:采用資源有序分配其基本思想是將系統(tǒng)中的所有資源順序編號,將緊缺的,稀少的采用較大的編號,在申請資源時必須按照編號的順序進行,一個進程只有獲得較小編號的進程才能申請較大編號的進程。
4、mysql文件
	mysql日志文件
		1、分類
			錯誤日志(error log)
			二進制日志(binary log)
			事務日志(repo log)
			慢查詢?nèi)罩荆╯low log)
			查詢?nèi)罩荆╭uery log)
		2、詳解
			錯誤日志:
				my.cnf:
					log-error:
						云服務器啟動和關閉產(chǎn)生的信息、云服務器運行中的錯誤、事件調(diào)度器運行一個事件產(chǎn)生的信息、在從服務器上啟動服務器進程產(chǎn)生的信息
					log-warnings:警告信息
				刷新錯誤日志:
					mv host_name.err host_name.err-old
					mysqladmin flush-logs
					mv host_name.err-old backup-directory
			二進制日志:
				my.cnf:
					log-bin:打開二進制日志,并設置位置
					max_binlog_size:設置binlog最大存儲上限,單位為M
					binlog-do-db:指定記錄哪個庫的binlog,忽略其他的
					binlog-ignore-db:指定不記錄哪個庫的binlog
					mysql-bin.index:用于記錄binlog的路徑的文件
					binlog_cache_size:默認32768,一個事務沒提交的時候產(chǎn)生的日志緩存,建議2M到4M。如果大的事務較多時,應適當提高該值的大小
					binlog_stmt_cache_size:當非事務語句使用二進制日志緩存,超出該值會使用一個臨時文件來存儲
					binlog-format:{row|SQL|mixed}三種方式,分別對應主從復制的三種方式
					sync_binlog:設定多久同步一次二進制日志到硬盤,0表示不同步
					expire_log_days:設置日志的過期時間
				查看二進制日志:
					show binary logs;
					show master status;
				更新二進制日志:
					flush logs;
					重啟mysql數(shù)據(jù)庫
				查看某一個二進制日志:
					show binlog events\G;
					show binlog events in 'mysql-bin.000001'\G;
					show binlog events in 'mysql-bin.000001' from 727\G;
					mysqlbinlog mysql-bin.000001
				刪除二進制日志:
					purge binary logs to 'mysql-bin.000010'(刪除000010之前的所有)
					purge binary logs before '2016-08-29 20:30:00';(刪除這個時間之前的)
					reset master;(全刪,慎用)
			事務日志:
				特點:
					innodb特有的日志,可以提高事務的效率。
					使用事務日志,存儲引擎在修改數(shù)據(jù)時只需要修改其內(nèi)存拷貝,在把修改持久化到事務日志,而不是每次修改都直接持久化修改的數(shù)據(jù)。
					如果,數(shù)據(jù)還沒有持久化,系統(tǒng)崩潰,但是事務日志已經(jīng)持久化;在重啟后可根據(jù)事務日志進行回復
				查看當前存儲引擎:
					show engines;
				查看默認的存儲引擎:
					show variables like '%storage_engine%';
				查看事務日志定義:
					show global variables like '%log%';
				my.cnf文件:
					innodb_flush_log_at_timeout=1
					innodb_flush_log_at_trx_commit=1
						1:每次事務提交都會寫事務日志,并寫數(shù)據(jù);安全性最高,性能最差
						2:每次事務提交會寫事務日志,每秒定時寫數(shù)據(jù);安全性和性能中
						0:每秒定時寫事務日志和數(shù)據(jù);安全性最差,性能最高
			慢查詢?nèi)罩荆?
				my.cnf文件:
					slow_query_log=1
					slow_qurey_log_file=/usr/local/mysql/data/mysql.slow
					long_query_time=1	:查詢時長,默認10s,超過則記日志
					slow_launch_time=1
				設置:
					set global slow_query_log=1		:開啟慢查詢
					set session long_query_time=1s		:設置慢查詢時間
					或者 set global long_query_time=1s		:全局下設置				
				查看慢查詢:
					show variables like '%slow%';
					show variables like 'long%';
				分析工具:
					mysqldumpslow mysql.slow
		3、補充:
			查看系統(tǒng)設置/運行狀態(tài):
				show global|session variables like %%
				show global|session status like %%
			修改數(shù)據(jù)庫系統(tǒng)配置:
				修改my.cnf文件
				set global binlog_cache_size = 1048576;
			查看mysql版本:
				mysql -V
				status;
				select version();
	mysql數(shù)據(jù)文件
		1、innodb數(shù)據(jù)文件
			test.ibd:獨占數(shù)據(jù)文件
				特點:方便單表在數(shù)據(jù)庫中的移動,空間可回收,性能稍微強于共享表空間
			test.ibdata:共享表空間數(shù)據(jù)文件
				特點:管理方便,但容易產(chǎn)生空間空隙,對統(tǒng)計分析、日值系統(tǒng)這類應用不適用
			test.frm:元數(shù)據(jù)文件
		2、MyISAM
			test.MYI:存儲表的索引的文件
			test.MYD:存儲表的真實數(shù)據(jù)的文件
			test.frm:元數(shù)據(jù)文件
	replication文件(備份文件,存于slave端)
		1、master.info
			存放master的信息的文件
		2、relay log
			中繼日志
		3、relay log index
			用于記錄relay log的絕對路徑 
		4、relay-log.info
			用于存放I/O線程寫入到本地的relay log的信息
	其他文件
		1、系統(tǒng)配置文件
			/etc/my.cnf文件
				[client]
					客戶端連接時可讀取的文件
				[mysqld]
					mysqld的初始化時的參數(shù)
		2、pid file
			pid存放文件,可在my.cnf中定義
		3、socket file
			unix socket文件存放位置
5、mysql引擎
	1、存儲引擎
		分類:
			innodb
			MyISAM
			NDB Cluster
				主要用于分布式集群中
			Maria
				MyISAM的升級版
			Falcon
				由MySQL開發(fā)為了替代innodb的存儲引擎
			Memory
				存儲數(shù)據(jù)和索引在內(nèi)存,保存元數(shù)據(jù)在磁盤,追求高性能
			Archive
				僅支持insert、select語句,會對數(shù)據(jù)進行壓縮
	2、MySQL常用引擎詳解
		MyISAM
			特點:
				支持三種類型的索引:b-tree、r-tree、Full-text(全文)
				它是5.1之前的默認存儲引擎
				不支持事務
				只支持表級鎖
			數(shù)據(jù)存放方式:
				靜態(tài)(fixed)
				動態(tài)(dynamic)
				可變長壓縮(compressed)
			統(tǒng)計數(shù)據(jù)大小方法:
				先統(tǒng)計一行的長度
				再統(tǒng)計每個表有多少條數(shù)據(jù)
				最后所有表相加得出庫的數(shù)據(jù)大小
				然后除以1024*1024得出為多少M的數(shù)據(jù),在除以1024也就多少G的數(shù)據(jù)
		innodb
			特點:
				支持事務
				行級鎖
				外鍵引用
				數(shù)據(jù)和索引在同一個文件存放
				可使用獨占表空間或共享表空間
		innodb和MyISAM對比:
			1、innodb支持事務,且默認開啟自動提交
			2、innodb支持行級鎖,MyISAM使用表級鎖。MyISAM的讀鎖和寫鎖互斥,不適用于大量讀寫并存的情況
			3、innodb支持外鍵
			4、innodb不支持全文索引
6、mysql命令工具
	1、mysql命令
		提供接口管理MySQL數(shù)據(jù)庫
			-u:指定用戶
			-p:指定密碼
			-h:指定主機地址,主機名
			-e:接要執(zhí)行的sql語句,常用于腳本編寫,關閉交互
			--prompt="\\u@\\h:\\d\\r:\\m:\\s>":建議使用,會出現(xiàn)你當前所處的環(huán)境
	2、mysqladmin命令
		管理相關的功能的命令
			mysqladmin -uroot -p123456 -h localhost ping
				檢測主機存活
			mysqladmin status 
				查看mysql的基本狀態(tài)
					uptime:運行的時間
					threads:活躍的進程數(shù)
					questions:查詢次數(shù)
					slow queries:慢查詢次數(shù)
					opens:打開的數(shù)據(jù)表的數(shù)量
					flush tables:執(zhí)行的flush、refresh、reload次數(shù)
					queries per second avg:平均查詢時間
					memory in use:分配的內(nèi)存(編譯時加--with-debug參數(shù))
					max memory used:分配的最大內(nèi)存(編譯時加--with-debug參數(shù))
	3、mysqldump
		mysql備份工具,可將mysql的sql語句dump成為文本
	4、mysqlbinlog
		分析mysql的binlog的作用
	5、mysql的show命令
		show databases;
		show tables;
		show table status from DB like TABLE;
		show columns from TABLE like DB;
		show index from TABLE;
		show variables;
		show processlist;
		show grant for USER;
	6、mysqlslap
		性能測試工具,可生成圖表
7、mysql的系統(tǒng)數(shù)據(jù)庫
	1、INFORMAtION_SCHEMA
		存儲了數(shù)據(jù)庫的元數(shù)據(jù)信息
			TABLES表:提供數(shù)據(jù)庫中表和視圖的信息
			COLUMNS表:表中的列的信息
			TABLE_CONSTRAINTS表:存儲主鍵約束、外鍵約束、唯一約束、check約束等
			STATISTICS:索引信息
	2、PERFORMANCE__SCHEMA
		存儲了提供數(shù)據(jù)庫性能優(yōu)化的參考信息
	3、MYSQL庫
		存儲用戶的權限和幫助信息
	4、sys庫
		存儲過程、自定義函數(shù)、視圖的存儲,結(jié)合了INFORMAtION_SCHEMA和PERFORMANCE__SCHEMA的信息		

看完MySQL有哪些入門知識這篇文章,大家覺得怎么樣?如果想要了解更多相關,可以繼續(xù)關注我們的行業(yè)資訊板塊。

新聞名稱:MySQL有哪些入門知識
瀏覽地址:http://muchs.cn/article4/ijsdoe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、電子商務響應式網(wǎng)站、動態(tài)網(wǎng)站、商城網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設