當前位置:首頁 » 操作系統 » mysql大資料庫

mysql大資料庫

發布時間: 2024-01-20 16:05:41

① 大型資料庫mysql可以使用嗎

MySQL資料庫MySQL(發音為"my ess cue el",不是"my sequel")是一種開放源代碼的關系型資料庫管理系統(RDBMS),MySQL資料庫系統使用最常用的資料庫管理語言--結構化查詢語言(SQL)進行資料庫管理。
由於MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。
MySQL關系型資料庫於1998年1月發行第一個版本。它使用系統核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、php、Python以及Tcl等編程語言的編程介面(APIs),支持多種欄位類型並且提供了完整的操作符支持查詢中的SELECT和WHERE操作。
MySQL開發組計劃於2001年中期公布MySQL4.0版本。在這個版本中將有以下新的特性被提供:新的表定義文件格式、高性能的數據復制功能、更加強大的全文搜索功能。在此之後,MySQL開發著希望提供安全的數據復制機制、在BeOS操作系統上的MySQL實現以及對延時關鍵字的定期刷新選項。隨著時間的推進,MySQL將對ANSI 92/ANSI 99標准完全兼容。
時至今日 mysql 和 php 的結合絕對是完美.很多大型的網站也用到mysql資料庫.mysql的發展前景是非常光明的!

② MySQL、SqlServer、Oracle,你必須了解的三大資料庫區別

優點:

體積小、速度快、總體擁有成本低,開源;

支持多種操作系統;

是開源資料庫,提供的介面支持多種語言連接操作 ;

MySQL的核心程序採用完全的多線程編程。線程是輕量級的進程,它可以靈活地為用戶提供服務,而不過多的系統資源。用多線程和C語言實現的mysql能很容易充分利用CPU;

MySql有一個非常靈活而且安全的許可權和口令系統。當客戶與MySql伺服器連接時,他們之間所有的口令傳送被加密,而且MySql支持主機認證;

支持ODBC for Windows, 支持所有的ODBC 2.5函數和其他許多函數, 可以用Access連接MySql伺服器, 使得應用被擴展;

支持大型的資料庫, 可以方便地支持上千萬條記錄的資料庫。作為一個開放源代碼的資料庫,可以針對不同的應用進行相應的修改;

擁有一個非常快速而且穩定的基於線程的內存分配系統,可以持續使用面不必擔心其穩定性;

MySQL同時提供高度多樣性,能夠提供很多不同的使用者介面,包括命令行客戶端操作,網頁瀏覽器,以及各式各樣的程序語言介面,例如C+,Perl,Java,PHP,以及Python。你可以使用事先包裝好的客戶端,或者乾脆自己寫一個合適的應用程序。MySQL可用於Unix,Windows,以及OS/2等平台,因此它可以用在個人電腦或者是伺服器上。

缺點:

不支持熱備份;

MySQL最大的缺點是其安全系統,主要是復雜而非標准,另外只有到調用mysqladmin來重讀用戶許可權時才發生改變;

沒有一種存儲過程(Stored Procere)語言,這是對習慣於企業級資料庫的程序員的最大限制;

MySQL的價格隨平台和安裝方式變化。linux的MySQL如果由用戶自己或系統管理員而不是第三方安裝則是免費的,第三方案則必須付許可費。Unix或linux 自行安裝 免費 、Unix或Linux 第三方安裝 收費。

③ 如何導入超大mysql資料庫備份文件

在mysql中導入/導出超大的sql文本文件,我們可以使用很多方法實例,如有:客戶端直接命令操作,分塊導入,客戶端用source命令操作等等。
在實際工作中,有時經常地時行mysql資料庫的導入和導入操作,但對於大型sql文件導入時,phpmyadmin是不行的,有太多限制,比如記錄,內存等!

多種方案收集,如下:
方案一:客戶端直接命令操作(此方法是我比較喜歡的)

剛恢復一個電商網站mysql備份數據,此備份文件有300多M,因為phpmyadmin支持上傳有限,文件太大IE停止響應,所以在本地用

代碼如下
復制代碼

mysql -u root -p root jiahuibuydb<
c:/yebihai.sql

但沒導入進去,出來一大堆mysql的參數提示,不認輸入的命令參數,後來寫成下面這個樣子,就是去掉了參數和數據之間的空格

代碼如下
復制代碼

mysql -uroot -proot jiahuibuydb<
c:/yebihai.sql

導入就OK了

導出命令:

a)導出整個庫

mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名

代碼如下
復制代碼

mysqlmp -u root -p student
>d:/yebihai.sql

b)導出一個表

mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名

方案二:分塊導入

代碼如下
復制代碼

<?
//用來快速Mysql的大數據備份
//使用前請首先按照代碼注釋修改要導入的SQL文件名、資料庫主機名、資料庫用戶名、密碼、資料庫名
//同時將資料庫文件和本文本一起ftp導網站目錄,然後以web方式訪問此文件即可

$file_name="sql.sql"; //要導入的SQL文件名

$dbhost="localhost"; //資料庫主機名
$dbuser="user"; //資料庫用戶名

$dbpass="pass"; //資料庫密碼
$dbname="dbname";
//資料庫名

set_time_limit(0); //設置超時時間為0,表示一直執行。當php在safe
mode模式下無效,此時可能會導致導入超時,此時需要分段導入
$fp = @fopen($file_name, "r") or
die("不能打開SQL文件 $file_name");//打開文件
mysql_connect($dbhost, $dbuser,
$dbpass) or die("不能連接資料庫 $dbhost");//連接資料庫
mysql_select_db($dbname)
or die ("不能打開資料庫 $dbname");//打開資料庫
mysql_query('set names utf8');

echo "正在執行導入操作";
while($SQL=GetNextSQL()){
if
(!mysql_query($SQL)){
echo
"執行出錯www.111cn.net:".mysql_error()."
";
echo
"SQL語句為:
".$SQL."
";
};
}
echo
"導入完成";

fclose($fp) or die("Can』t close file $file_name");//關閉文件

mysql_close();

//從文件中逐條取SQL
function GetNextSQL() {

global $fp;
$sql="";
while ($line =
@fgets($fp, 40960)) {
$line =
trim($line);

//以下三句在高版本php中不需要,在部分低版本中也許需要修改
$line =
str_replace("////","//",$line);
$line =
str_replace("/』","』",$line);
$line =
str_replace("//r//n",chr(13).chr(10),$line);
// $line
= stripcslashes($line);
if (strlen($line)>1)
{
if ($line[0]=="-" && $line[1]=="-")
{

continue;
}

}

$sql.=$line.chr(13).chr(10);
if
(strlen($line)>0){
if
($line[strlen($line)-1]==";"){

break;
}

}
}
return $sql;

}
?>

方案三:客戶端用source命令操作

比較好的辦法仍是用mysql的source命令:

一、在客戶端下操作:

1、進行入客戶端 代碼如下
復制代碼

2、mysql>use 資料庫名(如果沒有,先建一個)

3、mysql>set names 'utf8'; (一般看導入的是什麼格式的文件)

4、mysql>source d:/aaa.sql;

即可正常導入,如果有錯,可以看出錯提示

二、PHP文件操作:

建立a.php

裡面有下面內容 代碼如下
復制代碼

mysql_connet('xxxx');

mysql_query("set names 'utf8'");

mysql_query("source d:/aaa.sql'");

原理同上,主要方便了無法使用命令行用戶的操作

方案四:下面教大家一個簡單有效的辦法,適合不會使用命令窗口的非技術人員,可以導入任意大小的mysql資料庫,理論上不論您的資料庫備份文件多大,都可以導入

方法如下:

1.將資料庫備份文件(如backup.sql)上傳至網站根目錄。

2.將以下代碼保存為mysql.php文件,上傳至網站根目錄。

代碼如下
復制代碼

system("mysql -hdbhost -udbuser -ppassword dbname < backup.sql");

print "導入成功";

其中

dbhost 改為您的資料庫伺服器地址(小提示:一般主機默認資料庫伺服器地址是:localhost)

dbuser 改為您的資料庫用戶名

password 改為您的資料庫用戶密碼

dbname 改為您的資料庫名(導入的時候此庫必須先建立好,否則會失敗並且不會進行任何提示)

backup.sql表示通過ftp上傳到網站根目錄下資料庫文件的文件名(該文件是解壓縮後的文件)

3.在瀏覽器裡面訪問mysql.php, 那麼就在瀏覽器裡面輸入/mysql.php,只要瀏覽器一訪問這個mysql.php文件,數據就開始導入,數據導入結束後,就會顯示「導入成功」的字樣。這個時間根據您要導入的數據大小決定,一般時間很短

④ 設置mysql 資料庫文件最大多少

非root用戶運行MySQL,當MySQL配置比較高時,MySQL運行中生效的參數值與配置的值不一樣,所以具體分析一下MySQL是怎麼調整這些參數值的。
這篇文章的目的是為了說明在系統資源不夠的情況下,MySQL 是怎麼調整者三個參數的。說明此文涉及到三個參數open_files_limit、max_connections、table_open_cache。與這三個參數相關的系統資源是打開文件數限制,即文件描述符(fd)限制。系統參數與文件描述符的關系-max_connection&fd: 每一個MySQL connection 都需要一個文件描述符;
-table_open_cache&fd打開知族一張表至少需要一個 文件描述符,如打開MyISAM需要兩個fd;
- 系統最大打開文件數可以通過ulimit -n查看。MySQL調整參數的方式

  • 根據配置(三個參數的配置值或默認值)計算缺絕request_open_files(需要的文件描述符);

  • 2.獲取有效的系統的限制值effective_open_files; 3.根據effective_open_files調整request_open_files; 4.根據調整後的request_open_files,計算實際生效的參數值(show variables可查看參數值)。計算request_open_filesrequest_open_files有三個計算公式:1. // 最大連接數+同時打開的表的最大數量+其他(各種日誌等等)2. limit_1= max_connections+table_cache_size * 2 + 10;3. 4. //假設平均每個連接打開的表的數量(2-4)5. //源碼中是這么寫的:6. //We are trying to allocate no less than7. // max_connections*5 file handles8. limit_2= max_connections * 5;9. 10. //mysql 默認的默認是500011. limit_3= open_files_limit ? open_files_limit : 5000;12. 13. 所以open_files_limit期待的最低14. request_open_files= max(limit_1,limit_2,limit_3);計算effective_open_files:MySQL 的思路:

  • 在有限值的的范圍內MySQL盡量將effective_open_files的值設大。
  • 修正request_open_files

  • requested_open_files= min(effective_open_files,request_open_files)

    重新計算參數值

  • 修正open_files_limit

  • open_files_limit=effective_open_files

  • 修正max_connections

  • max_connections根據request_open_files來做修正。1. limit = requested_open_files - 10 - TABLE_OPEN_CACHE_MIN * 2;
  • 如果配置的max_connections值大於limit,則將max_connections的值修正為limit

  • 其他情況下max_connections保留配置值伏猛姿


  • 修正table_cache_size

  • table_cache_size會根據request_open_files來做修正1. // mysql table_cache_size 最小值,4002. limit1 = TABLE_OPEN_CACHE_MIN3. // 根據 requested_open_files 計算4. limit2 = (requested_open_files - 10 - max_connections) / 25. limit = max(limit1,limt2);
  • 如果配置的table_cache_size值大於limit,則將table_cache_size的值修正為limit

  • 其他情況下table_cache_size保留配置值


  • 舉例

  • 以下用例在非 root 用戶下運行
  • 參數設置:


  • //mysql
  • max_connections = 500

  • table_open_cache = 999
  • //ulimit -n

    1500

    生效的值:


  • open_files_limit = 1500 max_connections = min[(1500 - 10 - 800),500] = 500
  • table_open_cache = ( 1500 - 10 - 500) / 2 =495

⑤ mysql大資料庫備份什麼軟體好用

1.mysqlmp:最早,也是最成熟的邏輯備份工具,是 MySQL 原生的用來備份整個資料庫實例、單個資料庫、單張表的邏輯備份工具, 上手簡單,學習成本幾乎為 0。備份簡單,恢復也簡單。

比如導出單個資料庫 ytt: mysqlmp ytt > /tmp/ytt.sql;

恢復也非常簡單:mysql < /tmp/ytt.sql

缺點是備份速度慢。在整個備份過程中,是單線程運行;備份出來的數據集要恢復的話同樣也是單線程運行,恢復速度也慢。除非對同一時刻的所有表單獨備份出來,自己寫額外腳本進行多線程恢復。

2.mysqlpump:MySQL 5.7 GA 後推出的 mysqlmp工具的增強版。可以對同一個數據集多個線程並發備份,備份速度很快。

其他缺點和 mysqlmp 一樣。

3.MySQL Shell UTIL對象附帶的備份工具:隨 MySQL 8.0.21 最新版本捆綁發布,自帶多線程備份以及多線程恢復功能, 可以直接替代 mysqlmp/mysqlpump。

  • mp_instance/mpInstance 用來多線程備份 MySQL 整個單機實例

  • mp_schemas/mpSchemas 用來多線程備份 MySQL 單個資料庫

  • load_mp/loadDump 用來多線程恢復之前兩個工具導出的數據集文件

  • MySQL Shell UTIL 備份恢復工具具備如下特性:

    1.壓縮導出(默認壓縮演算法 zstd)

    2.數據集分塊導出,每塊 32M

    3.默認導出存儲過程、存儲函數、觸發器、事件、用戶、視圖

    4.默認 4 個線程導出

    5.默認進度展示

    6.默認字元集 utf8mb4

    7.默認開啟一致性導出

    8.默認表,視圖等定義導出為 SQL 語句

    9.默認數據導出為 TSV 格式數據

⑥ mysql資料庫太大了怎麼備份

命令:mysqlhot
這個命令會在拷貝文件之前會把表鎖住,並把數據同步到數據文件中,以避免拷貝到不完整的數據文件,是最安全快捷的備份方法。
命令的使用方法是:
mysqlhot -u root -p<rootpass> db1 db2 … dbn <output_dir>
如果需要備份全部資料庫,可以加上–regexp=」.*」參數。
Mysqlhot命令可自動完成數據鎖定工作,備份時不用關閉伺服器。
它還可以刷新日誌,使備份文件和日誌文件的檢查點能保持同步。

熱點內容
電腦如何避過聯網查配置 發布:2024-11-29 01:25:16 瀏覽:971
期貨軟體編程 發布:2024-11-29 01:13:16 瀏覽:833
如何下載加密pdf文件 發布:2024-11-29 01:09:21 瀏覽:325
高通android開發 發布:2024-11-29 01:09:11 瀏覽:692
xp電腦無線網密碼怎麼看密碼 發布:2024-11-29 01:08:30 瀏覽:123
戀愛劇腳本 發布:2024-11-29 00:59:58 瀏覽:574
安卓官方版陰陽師在哪裡下載 發布:2024-11-29 00:59:50 瀏覽:416
全球有多少忘記密碼丟失的比特幣 發布:2024-11-29 00:59:02 瀏覽:668
蘋果手機如何操作安卓三大鍵 發布:2024-11-29 00:58:55 瀏覽:165
凱美瑞混動版哪個配置值得買 發布:2024-11-29 00:54:49 瀏覽:238