新聞中心
mySQL是什么類型的數(shù)據(jù)庫?
mysql(發(fā)音為"my
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比滄州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式滄州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋滄州地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
ess
cue
el",不是"my
sequel")是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(rdbms),mysql數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(sql)進(jìn)行數(shù)據(jù)庫管理。
由于mysql是開放源代碼的,因此任何人都可以在general
public
license的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。mysql因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,mysql是管理內(nèi)容最好的選擇。
mysql關(guān)系型數(shù)據(jù)庫于1998年1月發(fā)行第一個版本。它使用系統(tǒng)核心提供的多線程機制提供完全的多線程運行模式,提供了面向c、c++、eiffel、java、perl、php、python以及tcl等編程語言的編程接口(apis),支持多種字段類型并且提供了完整的操作符支持查詢中的select和where操作。
mysql開發(fā)組計劃于2001年中期公布mysql4.0版本。在這個版本中將有以下新的特性被提供:新的表定義文件格式、高性能的數(shù)據(jù)復(fù)制功能、更加強大的全文搜索功能。在此之后,mysql開發(fā)著希望提供安全的數(shù)據(jù)復(fù)制機制、在beos操作系統(tǒng)上的mysql實現(xiàn)以及對延時關(guān)鍵字的定期刷新選項。隨著時間的推進(jìn),mysql將對ansi
92/ansi
99標(biāo)準(zhǔn)完全兼容。
時至今日
mysql
和
php
的結(jié)合絕對是完美.很多大型的網(wǎng)站也用到mysql數(shù)據(jù)庫.mysql的發(fā)展前景是非常光明的!
如何查看mySQL的源代碼
給你個過來人的建議。兩個方式入手。
1、利用他。盡可能從大模塊開始,用你的代碼,去調(diào)用他。這是從功能特性角度,去理解各個模塊的作用。這非常容易加深你對應(yīng)用它的理解。
2、在代碼中插入LOG,檢測代碼運行流程。
如果你只是靜態(tài)的看代碼,這個不現(xiàn)實的。
如果你想看一部分代碼。首先你要想辦法讓這套代碼RUN起來,如果你使用任何方式都無法讓這段代碼運行,我只能說,這段代碼沒有存在價值。為什么在里面,當(dāng)然更大的可能是,你沒找到開啟它的方法。
動態(tài)分析法,是門學(xué)問。包括對運行態(tài)才出現(xiàn)BUG的系統(tǒng)進(jìn)行DEBUG,當(dāng)然不是GDB或者VC的F5模式。不過貌似學(xué)校沒有這類教學(xué)。很工程的東西。我也只是經(jīng)驗所得。沒有系統(tǒng)的理論化。
例如一套系統(tǒng),你在不改代碼的情況下,要能找到問題。甚至不能加LOG代碼,只能通過反饋判斷。不是不可能的。甚至有時必須這么做。
什么是MySql數(shù)據(jù)庫
MySQL數(shù)據(jù)庫:
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。
MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。
MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。
數(shù)據(jù)庫簡介:
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。
由于MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。
MySQL這個名字,起源不是很明確。一個比較有影響的說法是,基本指南和大量的庫和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個迷,包括開發(fā)者在內(nèi)也不知道。
MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha的一個小鎮(zhèn)的名字。
MySQL,雖然功能未必很強大,但因為它的開源、廣泛傳播,導(dǎo)致很多人都了解到這個數(shù)據(jù)庫。它的歷史也富有傳奇性。
MySQL數(shù)據(jù)庫歷史:
MySQL的歷史最早可以追溯到1979年,那時Oracle也才小打小鬧,微軟的SQL Server影子都沒有。有一個人叫Monty Widenius, 為一個叫TcX的小公司打工,并用BASIC設(shè)計了一個報表工具,可以在4M主頻和16KB內(nèi)存的計算機上運行。過了不久,又將此工具,使用C語言重寫,移植到Unix平臺,當(dāng)時,它只是一個很底層的面向報表的存儲引擎。這個工具叫做Unireg。
可是,這個小公司資源有限,Monty天賦極高,面對資源有限的不利條件,他反而更能發(fā)揮潛能,總是力圖寫出最高效的代碼。并因此養(yǎng)成了習(xí)慣。與Monty同在一起的還有一些別的同事,很少有人能堅持把那些代碼持續(xù)寫到20年后,而Monty卻做到了。
1990年,TcX的customer 中開始有人要求要為它的API提供SQL支持,當(dāng)時,有人想到了直接使用商用數(shù)據(jù)庫算了,但是Monty覺得商用數(shù)據(jù)庫的速度難令人滿意。于是,他直接借助于mSQL的代碼,將它集成到自己的存儲引擎中。但不巧的是,效果并不太好。于是, Monty雄心大起,決心自己重寫一個SQL支持。
1996年,MySQL 1.0發(fā)布,只面向一小撥人,相當(dāng)于內(nèi)部發(fā)布。到了96年10月,MySQL 3.11.1發(fā)布了,呵呵,沒有2.x版本。最開始,只提供了Solaris下的二進(jìn)制版本。一個月后,Linux版本出現(xiàn)了。
緊接下來的兩年里,MySQL依次移植到各個平臺下。它發(fā)布時,采用的許可策略,有些與眾不同:允許免費商用,但是不能將MySQL與自己的產(chǎn)品綁定在一起發(fā)布。如果想一起發(fā)布,就必須使用特殊許可,意味著要花銀子。當(dāng)然,商業(yè)支持也是需要花銀子的。其它的,隨用戶怎么用都可以。這種特殊許可為MySQL帶來了一些收入,從而為它的持續(xù)發(fā)展打下了良好的基礎(chǔ)。(細(xì)想想,PostgreSQL曾經(jīng)有幾年限入低谷,可能與它的完全免費,不受任何限制有關(guān)系)。
MySQL3.22應(yīng)該是一個標(biāo)志性的版本,提供了基本的SQL支持。
MySQL關(guān)系型數(shù)據(jù)庫于1998年1月發(fā)行第一個版本。它使用系統(tǒng)核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等編程語言的編程接口(APIs),支持多種字段類型并且提供了完整的操作符支持查詢中的SELECT和WHERE操作。
MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。
1999-2000年,有一家公司在瑞典成立了,叫MySQL AB (AB是瑞典語“股份公司”的意思)。 雇了幾個人,與Sleepycat合作,開發(fā)出了 Berkeley DB引擎, 因為BDB支持事務(wù)處理,所以,MySQL從此開始支持事務(wù)處理了。
2000年4月,MySQL對舊的存儲引擎進(jìn)行了整理,命名為MyISAM。同時,2001年,Heikiki Tuuri向MySQL提出建議,希望能集成他們的存儲引擎InnoDB,這個引擎同樣支持事務(wù)處理,還支持行級鎖。
如今,遺憾的是,BDB和InnoDB好像都被Oracle收購了,為了消滅競爭對手,哪怕是開源的,都是不擇手段。
MySQL與InnoDB的正式結(jié)合版本是4.0。
到了MySQL5.0,2003年12月,開始有View,存儲過程之類的東東,當(dāng)然,其間, bug也挺多。
在2008年1月16號 MySQL被Sun公司收購。
最近,MySQL的創(chuàng)始人Monty Widenius已經(jīng)向Sun提交了辭呈。head都要走了。
據(jù)說,被Sun收購的公司多薄命,不知道MySQL今后前途如何,希望一路走好。相信MySQL的生命力還是很長久的。
時至今日 mysql 和 php 的結(jié)合絕對是完美.很多大型的網(wǎng)站也用到mysql數(shù)據(jù)庫.mysql的發(fā)展前景是非常光明的!
MySQL常用命令:
1:使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:
mysql SHOW DATABASES;
2:2、創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA
mysql CREATE DATABASE MYSQLDATA;
3:選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時說明操作成功!)
4:查看現(xiàn)在的數(shù)據(jù)庫中存在什么表
mysql SHOW TABLES;
5:創(chuàng)建一個數(shù)據(jù)庫表
mysql CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:顯示表的結(jié)構(gòu):
mysql DESCRIBE MYTABLE;
7:往表中加入記錄
mysql insert into MYTABLE values (”hyq”,”M”);
8:用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如D:/mysql.txt)
mysql LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
9:導(dǎo)入.sql文件命令(例如D:/mysql.sql)
mysqluse database;
mysqlsource d:/mysql.sql;
10:刪除表
mysqldrop TABLE MYTABLE;
11:清空表
mysqldelete from MYTABLE;
12:更新表中數(shù)據(jù)
mysqlupdate MYTABLE set sex=”f” where name=’hyq’;
全局管理權(quán)限對應(yīng)解釋:
FILE: 在MySQL服務(wù)器上讀寫文件。
PROCESS: 顯示或殺死屬于其它用戶的服務(wù)線程。
RELOAD: 重載訪問控制表,刷新日志等。
SHUTDOWN: 關(guān)閉MySQL服務(wù)。
數(shù)據(jù)庫/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限:
ALTER: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。
CREATE: 建立新的數(shù)據(jù)庫或數(shù)據(jù)表。
DELETE: 刪除表的記錄。
DROP: 刪除數(shù)據(jù)表或數(shù)據(jù)庫。
INDEX: 建立或刪除索引。
INSERT: 增加表的記錄。
SELECT: 顯示/搜索表的記錄。
UPDATE: 修改表中已存在的記錄。
特別的權(quán)限:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登錄–其它什么也不允許做。
MySQL數(shù)據(jù)庫導(dǎo)入方法:
MySQL數(shù)據(jù)庫的導(dǎo)入,有兩種方法:
1) 先導(dǎo)出數(shù)據(jù)庫SQL腳本,再導(dǎo)入;
2) 直接拷貝數(shù)據(jù)庫目錄和文件。
在不同操作系統(tǒng)或MySQL版本情況下,直接拷貝文件的方法可能會有不兼容的情況發(fā)生。
所以一般推薦用SQL腳本形式導(dǎo)入。下面分別介紹兩種方法。
2. 方法一 SQL腳本形式
操作步驟如下:
2.1. 導(dǎo)出SQL腳本
在原數(shù)據(jù)庫服務(wù)器上,可以用phpMyAdmin工具,或者mysqldump命令行,導(dǎo)出SQL腳本。
2.1.1 用phpMyAdmin工具
導(dǎo)出選項中,選擇導(dǎo)出“結(jié)構(gòu)”和“數(shù)據(jù)”,不要添加“DROP DATABASE”和“DROP TABLE”選項。
選中“另存為文件”選項,如果數(shù)據(jù)比較多,可以選中“gzipped”選項。
將導(dǎo)出的SQL文件保存下來。
2.1.2 用mysqldump命令行
命令格式
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 數(shù)據(jù)庫名.sql
范例:
mysqldump -u root -p abc abc.sql
(導(dǎo)出數(shù)據(jù)庫abc到abc.sql文件)
提示輸入密碼時,輸入該數(shù)據(jù)庫用戶名的密碼。
2.2. 創(chuàng)建空的數(shù)據(jù)庫
通過主控界面/控制面板,創(chuàng)建一個數(shù)據(jù)庫。假設(shè)數(shù)據(jù)庫名為abc,數(shù)據(jù)庫全權(quán)用戶為abc_f。
2.3. 將SQL腳本導(dǎo)入執(zhí)行
同樣是兩種方法,一種用phpMyAdmin(mysql數(shù)據(jù)庫管理)工具,或者mysql命令行。
2.3.1 用phpMyAdmin工具
從控制面板,選擇創(chuàng)建的空數(shù)據(jù)庫,點“管理”,進(jìn)入管理工具頁面。
在"SQL"菜單中,瀏覽選擇剛才導(dǎo)出的SQL文件,點擊“執(zhí)行”以上載并執(zhí)行。
注意:phpMyAdmin對上載的文件大小有限制,php本身對上載文件大小也有限制,如果原始sql文件
比較大,可以先用gzip對它進(jìn)行壓縮,對于sql文件這樣的文本文件,可獲得1:5或更高的壓縮率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。
提示輸入密碼時,輸入該數(shù)據(jù)庫用戶名的密碼。
3 直接拷貝
如果數(shù)據(jù)庫比較大,可以考慮用直接拷貝的方法,但不同版本和操作系統(tǒng)之間可能不兼容,要慎用。
3.1 準(zhǔn)備原始文件
用tar打包為一個文件
3.2 創(chuàng)建空數(shù)據(jù)庫
3.3 解壓
在臨時目錄中解壓,如:
cd /tmp
tar zxf mydb.tar.gz
3.4 拷貝
將解壓后的數(shù)據(jù)庫文件拷貝到相關(guān)目錄
cd mydb/
cp * /var/lib/mysql/mydb/
對于FreeBSD:
cp * /var/db/mysql/mydb/
3.5 權(quán)限設(shè)置
將拷貝過去的文件的屬主改為mysql:mysql,權(quán)限改為660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*
Mssql轉(zhuǎn)換mysql的方法:
1.導(dǎo)表結(jié)構(gòu)
使用MySQL生成create腳本的方法。找到生成要導(dǎo)出的腳本,按MySQL的語法修改一下到MySQL數(shù)據(jù)庫中創(chuàng)建該表的列結(jié)構(gòu)什么的。
2.導(dǎo)表數(shù)據(jù)
在MSSQL端使用bcp導(dǎo)出文本文件:
bcp “Select * FROM dbname.dbo.tablename;” queryout tablename.txt -c -Slocalhost\db2005 -Usa
其中”"中是要導(dǎo)出的sql語句,-c指定使用\t進(jìn)行字段分隔,使用\n進(jìn)行記錄分隔,-S指定數(shù)據(jù)庫服務(wù)器及實例,-U指定用戶名,-P指定密碼.
在MySQL端使用mysqlimport 導(dǎo)入文本文件到相應(yīng)表中
mysqlimport -uroot -p databasename /home/test/tablename.txt
其中-u指定用戶名,-p指定密碼,databasename指定數(shù)據(jù)庫名稱,表名與文件名相同
MySQL備份與恢復(fù):
MySQL備份恢復(fù)數(shù)據(jù)的一般步驟
備份一個數(shù)據(jù)庫的例子:
1、備份前讀鎖定涉及的表
mysqlLOCK TABLES tbl1 READ,tbl1 READ,…
如果,你在mysqldump實用程序中使用--lock-tables選項則不必使用如上SQL語句。
2、導(dǎo)出數(shù)據(jù)庫中表的結(jié)構(gòu)和數(shù)據(jù)
shellmysqldump --opt db_namedb_name.sql
3、啟用新的更新日志
shellmysqladmin flush-logs
這樣可以記錄你備份后的數(shù)據(jù)改變?yōu)榛謴?fù)數(shù)據(jù)準(zhǔn)備。
4、解除表的讀鎖
mysqlUNLOCK TABLES;
為了加速上述過程,你可以這樣做:
shell mysqldump --lock-tables --opt db_namedb_name.sql; mysqladmin flush-logs
但是這樣可能會有點小問題。上命令在啟用新的更新日志前就恢復(fù)表的讀鎖,
在更新繁忙的站點,可能有備份后的更新數(shù)據(jù)沒有記錄在新的日志中。
現(xiàn)在恢復(fù)上面?zhèn)浞莸臄?shù)據(jù)庫
1、對涉及的表使用寫鎖
mysqlLOCK TABLES tbl1 WRITE,tbl1 WRITE,…
2、恢復(fù)備份的數(shù)據(jù)
shellmysql db_name db_name.sql
3、恢復(fù)更新日志的內(nèi)容
shellmysql --one-database db_name hostname.nnn
假設(shè)需要使用的日志名字為hostname.nnn
4、啟用新的更新日志
shellmysqladmin flush-logs
5、解除表的寫鎖
mysqlUNLOCK TABLES;
希望上面的例子能給你啟發(fā),因為備份數(shù)據(jù)的手法多種多樣,你所使用的和上面所述可能大不一樣,但是對于備份和恢復(fù)中,表的鎖定、啟用新的更新日志的時機應(yīng)該是類似的,仔細(xì)考慮這個問題。
MySQL數(shù)據(jù)庫優(yōu)化:
選擇InnoDB作為存儲引擎
大型產(chǎn)品的數(shù)據(jù)庫對于可靠性和并發(fā)性的要求較高,InnoDB作為默認(rèn)的MySQL存儲引擎,相對于MyISAM來說是個更佳的選擇。
優(yōu)化數(shù)據(jù)庫結(jié)構(gòu)
組織數(shù)據(jù)庫的schema、表和字段以降低I/O的開銷,將相關(guān)項保存在一起,并提前規(guī)劃,以便隨著數(shù)據(jù)量的增長,性能可以保持較高的水平。
設(shè)計數(shù)據(jù)表應(yīng)盡量使其占用的空間最小化,表的主鍵應(yīng)盡可能短。·對于InnoDB表,主鍵所在的列在每個輔助索引條目中都是可復(fù)制的,因此如果有很多輔助索引,那么一個短的主鍵可以節(jié)省大量空間。
僅創(chuàng)建你需要改進(jìn)查詢性能的索引。索引有助于檢索,但是會增加插入和更新操作的執(zhí)行時間。
InnoDB的ChangeBuffering特性
InnoDB提供了changebuffering的配置,可減少維護(hù)輔助索引所需的磁盤I/O。大規(guī)模的數(shù)據(jù)庫可能會遇到大量的表操作和大量的I/O,以保證輔助索引保持最新。當(dāng)相關(guān)頁面不在緩沖池里面時,InnoDB的changebuffer將會更改緩存到輔助索引條目,從而避免因不能立即從磁盤讀取頁面而導(dǎo)致耗時的I/O操作。當(dāng)頁面被加載到緩沖池時,緩沖的更改將被合并,更新的頁面之后會刷新到磁盤。這樣做可提高性能,適用于MySQL5.5及更高版本。
InnoDB頁面壓縮
InnoDB支持對表進(jìn)行頁面級的壓縮。當(dāng)寫入數(shù)據(jù)頁的時候,會有特定的壓縮算法對其進(jìn)行壓縮。壓縮后的數(shù)據(jù)會寫入磁盤,其打孔機制會釋放頁面末尾的空塊。如果壓縮失敗,數(shù)據(jù)會按原樣寫入。表和索引都會被壓縮,因為索引通常是數(shù)據(jù)庫總大小中占比很大的一部分,壓縮可以顯著節(jié)約內(nèi)存,I/O或處理時間,這樣就達(dá)到了提高性能和伸縮性的目的。它還可以減少內(nèi)存和磁盤之間傳輸?shù)臄?shù)據(jù)量。MySQL5.1及更高版本支持該功能。
注意,頁面壓縮并不能支持共享表空間中的表。共享表空間包括系統(tǒng)表空間、臨時表空間和常規(guī)表空間。
使用批量數(shù)據(jù)導(dǎo)入
在主鍵上使用已排序的數(shù)據(jù)源進(jìn)行批量數(shù)據(jù)的導(dǎo)入可加快數(shù)據(jù)插入的過程。否則,可能需要在其他行之間插入行以維護(hù)排序,這會導(dǎo)致磁盤I/O變高,進(jìn)而影響性能,增加頁的拆分。關(guān)閉自動提交的模式也是有好處的,因為它會為每個插入執(zhí)行日志刷新到磁盤。在批量插入期間臨時轉(zhuǎn)移唯一鍵和外鍵檢查也可顯著降低磁盤I/O。對于新建的表,最好的做法是在批量導(dǎo)入后創(chuàng)建外鍵/唯一鍵約束。
一旦你的數(shù)據(jù)達(dá)到穩(wěn)定的大小,或者增長的表增加了幾十或幾百兆字節(jié),就應(yīng)該考慮使用OPTIMIZETABLE語句重新組織表并壓縮浪費的空間。對重新組織后的表進(jìn)行全表掃描所需要的I/O會更少。
優(yōu)化InnoDB磁盤I/O
增加InnoDB緩沖池大小可以讓查詢從緩沖池訪問而不是通過磁盤I/O訪問。通過調(diào)整系統(tǒng)變量innodb_flush_method來調(diào)整清除緩沖的指標(biāo)使其達(dá)到最佳水平。
MySQL的內(nèi)存分配
在為MySQL分配足夠的內(nèi)存之前,請考慮不同領(lǐng)域?qū)ySQL的內(nèi)存需求。要考慮的關(guān)鍵領(lǐng)域是:并發(fā)連接——對于大量并發(fā)連接,排序和臨時表將需要大量內(nèi)存。在撰寫本文時,對于處理3000+并發(fā)連接的數(shù)據(jù)庫,16GB到32GB的RAM是足夠的。
內(nèi)存碎片可以消耗大約10%或更多的內(nèi)存。像innodb_buffer_pool_size、key_buffer_size、query_cache_size等緩存和緩沖區(qū)要消耗大約80%的已分配內(nèi)存。
日常維護(hù)
定期檢查慢的查詢?nèi)罩静?yōu)化查詢機制以有效使用緩存來減少磁盤I/O。優(yōu)化它們,以掃描最少的行數(shù),而不是進(jìn)行全表掃描。
其他可以幫助DBA檢查和分析性能的日志包括:錯誤日志、常規(guī)查詢?nèi)罩尽⒍M(jìn)制日志、DDL日志(元數(shù)據(jù)日志)。
定期刷新緩存和緩沖區(qū)以降低碎片化。使用OPTIMIZETABLE語句重新組織表并壓縮任何可能被浪費的空間。
什么是Mysql數(shù)據(jù)庫,與其它數(shù)據(jù)庫的區(qū)別和特點是什么?
MySQL(發(fā)音為“mynbsp;essnbsp;cuenbsp;el“,不是“mynbsp;sequel“)是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。nbsp;nbsp;由于MySQL是開放源代碼的,因此任何人都可以在Generalnbsp;Publicnbsp;License的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。nbsp;nbsp;nbsp;nbsp;MySQL關(guān)系型數(shù)據(jù)庫于1998年1月發(fā)行第一個版本。它使用系統(tǒng)核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、nbsp;Eiffel、Java、Perl、PHP、Python以及Tcl等編程語言的編程接口(APIs),支持多種字段類型并且提供了完整的操作符支持查詢中的SELECT和WHERE操作。nbsp;nbsp;nbsp;nbsp;MySQL開發(fā)組計劃于2001年中期公布MySQL4.0版本。在這個版本中將有以下新的特性被提供:新的表定義文件格式、高性能的數(shù)據(jù)復(fù)制功能、更加強大的全文搜索功能。在此之后,MySQL開發(fā)著希望提供安全的數(shù)據(jù)復(fù)制機制、在BeOS操作系統(tǒng)上的MySQL實現(xiàn)以及對延時關(guān)鍵字的定期刷新選項。隨著時間的推進(jìn),MySQL將對ANSInbsp;92/ANSInbsp;99標(biāo)準(zhǔn)完全兼容。MsSql----amp;gt;MicroSoftnbsp;nbsp;nbsp;Sqlnbsp;nbsp;nbsp;Server,需要money,而且很多呢。(大型項目用,大型網(wǎng)站用)nbsp;nbsp;nbsp;nbsp;MySql----amp;gt;免費的。速度快。可以用于小型項目。nbsp;mysql數(shù)據(jù)庫和oracle的區(qū)別和選擇:LAMP大會的時候我跟Yahoo的一個技術(shù)高管聊的時候,我問他Yahoo在選擇MySQL還是nbsp;Oracle的時候是怎么考慮,他的答案令我非常驚訝。他說大部分的時候我們是會用MySQL的,因為它的性能已經(jīng)達(dá)到我們的要求。但是什么時候我們會選用Oracle呢,就是當(dāng)我們需要存儲收費用戶的數(shù)據(jù)的時候。我就問為什么,難道Oracle比MySQL穩(wěn)定嗎?他說,這個倒沒有特別考慮。關(guān)鍵是如果使用Oracle的話,當(dāng)出現(xiàn)問題的時候我們可以找到負(fù)責(zé)人,Oracle會負(fù)責(zé)事故的處理,但是如果用MySQL的話,我們找誰去?
在mysql數(shù)據(jù)庫中怎么查詢出兩個時間段之間的數(shù)據(jù) ???
mysql中,查詢數(shù)據(jù)庫中兩個時間段之間的數(shù)據(jù)有如下兩種方法:
select * from 表名 where 列名'時間段1' and 列名'時間段2'
select * from 表名 where 列名 between '時間段1' and '時間段2'
執(zhí)行結(jié)果分別如下:
拓展資料:
數(shù)據(jù)庫簡介
MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。
MySQL這個名字,起源不是很明確。一個比較有影響的說法是,基本指南和大量的庫和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個迷,包括開發(fā)者在內(nèi)也不知道。
MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha的一個小鎮(zhèn)的名字。
MySQL,雖然功能未必很強大,但因為它的開源、廣泛傳播,導(dǎo)致很多人都了解到這個數(shù)據(jù)庫。它的歷史也富有傳奇性。
cmd中怎么進(jìn)mysql
一、單擊windows圖標(biāo)--搜索框內(nèi)輸入cmd,點擊運行。
二、在彈出的CMD命令框中輸入: "net
start
mysql",按下回車。
三、再次輸入"mysql
-hlocalhost
-uroot
-p"命令回車
進(jìn)入mysql數(shù)據(jù)庫。
四、當(dāng)顯示下面的界面時表示成功鏈接到了mysql數(shù)據(jù)庫。
五、輸入”show
databases”回車可以顯示你所擁有的數(shù)據(jù)庫。
(其中-h表示服務(wù)器名,localhost表示本地;-u為數(shù)據(jù)庫用戶名,root是mysql默認(rèn)用戶名;-p為密碼,如果設(shè)置了密碼,可直接在-p后鏈接輸入,如:-p123456,用戶沒有設(shè)置密碼,顯示Enter
password時,直接回車即可)。
拓展資料
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。MySQL是開放源代碼的,因此任何人都可以在General
Public
License的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。
網(wǎng)站標(biāo)題:mysql怎么讀源代碼,mysql源碼是什么語言
轉(zhuǎn)載源于:http://www.ef60e0e.cn/article/phidoi.html