本文目錄一覽:
- 1、MYSQL相比於其他資料庫有哪些特點
- 2、如何評估和測試Mysql及oracle資料庫性能
- 3、php使用mysqli和pdo擴展,測試對比mysql資料庫的執行效率完整示例
- 4、Mongodb和mysql的區別
MYSQL相比於其他資料庫有哪些特點
1.使用C和C++編寫,並使用了多種編譯器進行測試,保證源代碼的可移植性 ;
2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統 ;
3.為多種編程語言提供了API。這些編程語言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。 ;
4.支持多線程,充分利用CPU資源 ;
5.優化的SQL查詢演算法,有效地提高查詢速度 ;
6.既能夠作為一個單獨的應用程序應用在客戶端伺服器網路環境中,也能夠作為一個庫而嵌入到其他的軟體中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數據表名和數據列名;
7.提供TCP/IP、ODBC和JDBC等多種資料庫連接途徑 ;
8.提供用於管理、檢查、優化資料庫操作的管理工具 ;
9.可以處理擁有上千萬條記錄的大型資料庫。
如何評估和測試Mysql及oracle資料庫性能
首先 資料庫的性能有很多種 1:速度性能2:並發性能3:事務性能 在速度性能上,首先你需要首先確定你的測試環境。舉個例子,比如你的軟體可能的用戶群是一群使用586電腦的客戶,那麼肯定是mysql的效率要高出oracle.這個是為什麼呢,mysql在事務策略和安全策略上做的工作遠沒有oracle做出的多。如果軟體不需要這方面的高要求,那麼完全可以使用mysql,這樣機器的配置可以比較低,但是表現出的性能會更加優越。 前面是題外話,在測試前你需要首先頂一下你的測試環境,為了能讓oracle充分的表現出他的性能,你應該選取一些強勁的小型機或者伺服器來作為測試環境(雖然這樣的環境對於mysql來說可能浪費了,但是這樣才能確保2個資料庫都充分的發揮的自己的特性)。 其次,測試訪問速度,你可以通過對資料庫的大批量寫入來看出效果。所謂大批量寫入應該嘗試使用存儲過程一次讀入了10M的數據文件然後寫入並且記錄時間(同時記錄cpu,內存等佔用情況)。然後對於至少2個超過10萬的數據表做笛卡爾積查詢(全連接),查看查詢的時間。
php使用mysqli和pdo擴展,測試對比mysql資料庫的執行效率完整示例
本文實例講述了php使用mysqli和pdo擴展,測試對比mysql資料庫的執行效率。分享給大家供大家參考,具體如下:
?php
/**
*
測試pdo和mysqli的執行效率
*/
header(“Content-type:text/html;charset=utf-8”);
//通過pdo鏈接資料庫
$pdo_startTime
=
microtime(true);
$pdo
=
new
PDO(“mysql:host=localhost;dbname=test”,”root”,”1234″,array(PDO::MYSQL_ATTR_INIT_COMMAND
=
“SET
NAMES’utf8′;”));
for($i=1;$i=100;$i++){
$title
=
“pdo標題”.$i;
$content
=
“pdo內容”.$i;
$addtime
=
time();
$user_id
=
$i;
$pdo_sql
=
“INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES(:title,:content,:addtime,:user_id)”;
$sth
=
$pdo-prepare($pdo_sql);
$sth-bindParam(‘:title’,$title);
$sth-bindParam(‘:content’,$content);
$sth-bindParam(‘:addtime’,$addtime);
$sth-bindParam(‘:user_id’,$user_id);
$sth-execute();
}
$pdo_endTime
=
microtime(true);
$pdo_time
=
$pdo_endTime
–
$pdo_startTime;
echo
$pdo_time;
echo
“hr/”;
//通過mysql鏈接資料庫
$mysqli_startTime
=
microtime(true);
$mysqli
=
mysqli_connect(“localhost”,”root”,”1234″,”test”)
or
die(“數據連接失敗”);
mysqli_query($mysqli,”set
names
utf8″);
for($i=1;$i=100;$i++){
$title
=
“mysqli標題”.$i;
$content
=
“mysqli內容”.$i;
$addtime
=
time();
$user_id
=
$i;
$sql
=
“INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES(‘”.$title.”‘,'”.$content.”‘,”.$addtime.”,”.$user_id.”)”;
mysqli_query($mysqli,$sql);
}
$mysqli_endTime
=
microtime(true);
$mysqli_time
=
$mysqli_endTime
–
$mysqli_startTime;
echo
$mysqli_time;
echo
“hr/”;
if($pdo_time
$mysqli_time){
echo
“pdo的執行時間是mysqli的”.round($pdo_time/$mysqli_time).”倍”;
}else{
echo
“mysqli的執行時間是pdo的”.round($mysqli_time/$pdo_time).”倍”;
}
測試結果:其實經過多次測試,pdo和mysqli的執行效率差不多。
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP基於pdo操作資料庫技巧總結》、《php+mysqli資料庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:php使用mysqli和pdo擴展,測試對比連接mysql資料庫的效率完整示例php中資料庫連接方式pdo和mysqli對比分析php中關於mysqli和mysql區別的一些知識點分析php操作mysqli(示例代碼)php封裝的mysqli類完整實例PHP以mysqli方式連接類完整代碼實例php簡單解析mysqli查詢結果的方法(2種方法)php中mysql連接方式PDO使用詳解Php中用PDO查詢Mysql來避免SQL注入風險的方法php
mysql
PDO
查詢操作的實例詳解PHP實現PDO的mysql資料庫操作類
Mongodb和mysql的區別
Mongodb和mysql的區別
1.Mongodb簡介及優缺點分析
Mongodb是非關係型資料庫(nosql ),屬於文檔型資料庫。文檔是mongoDB中數據的基本單元,類似關係資料庫的行,多個鍵值對有序地放置在一起便是文檔,語法有點類似javascript面向對象的查詢語言,它是一個面向集合的,模式自由的文檔型資料庫。
存儲方式:虛擬內存+持久化。
查詢語句:是獨特的Mongodb的查詢方式。
適合場景:事件的記錄,內容管理或者博客平台等等。
架構特點:可以通過副本集,以及分片來實現高可用。
數據處理:數據是存儲在硬碟上的,只不過需要經常讀取的數據會被載入到內存中,將數據存儲在物理內存中,從而達到高速讀寫。
成熟度與廣泛度:新興資料庫,成熟度較低,Nosql資料庫中最為接近關係型資料庫,比較完善的DB之一,適用人群不斷在增長。
優點:
快速!在適量級的內存的Mongodb的性能是非常迅速的,它將熱數據存儲在物理內存中,使得熱數據的讀寫變得十分快。高擴展性,存儲的數據格式是json格式!
缺點:
① mongodb不支持事務操作。
② mongodb佔用空間過大。
③ 開發文檔不是很完全,完善。
2.MySQL優缺點分析
優點:
在不同的引擎上有不同 的存儲方式。
查詢語句是使用傳統的sql語句,擁有較為成熟的體系,成熟度很高。
開源資料庫的份額在不斷增加,mysql的份額頁在持續增長。
缺點:
在海量數據處理的時候效率會顯著變慢。
3.Mongodb和MySQL資料庫的對比
傳統的關係資料庫一般由資料庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由資料庫(database)、集合(collection)、文檔對象(document)三個層次組成。
MongoDB對於關係型資料庫里的表,但是集合中沒有列、行和關係概念,這體現了模式自由的特點。
4.MongoDB常用語句
# 連接Mongo資料庫,並設置數據存儲地址
mongod.exe –dbpath “d:softwareMongoDBServer3.0data”
#———————–#1# 資料庫
# 查看所有的資料庫
show dbs
# 刪除當前使用的資料庫
db.dropDatabase()
# 使用這個資料庫(只有插入數據後完成創建資料庫)
use dbt
# 查看當前使用的資料庫
db
db.getName()
# 查看當前資料庫狀態
db.stats()
# 修復當前資料庫
db.repairDatabase()
# 從一個資料庫複製到另一個資料庫
db.copyDatabase(“mydb”, “temp”, “127.0.0.1”);
#———————–#2# 集合
# 查看當前資料庫下所有的集合
show collections
show tables
# 創建名稱為coll集合
db.createCollection(‘coll’)
db.createCollection(“coll2”, {capped:true, autoIndexId:true, size:6142800, max:10000}) # 可選參數
# 查看當前集合狀態
db.coll.stats()
# 刪除名稱為coll集合
db.coll.drop()
#———————–#3# 集合數據
# 插入空數據並且直接創建名稱為coll集合
db.coll.insert({})
# 插入一個或多個數據
db.coll.insert({name:’tom’, age:22})
db.coll.insert([{name:’adam’, age:10},{name:’john’, age:23}])
# 添加數據(save方法可以修改相同id的數據)
db.coll.save({name:’allen’})
# 刪除一個或所有的數據
db.coll.remove({name:’tom’})
db.coll.remove({})
# 刪除符合條件的數據中的第一條
db.coll.remove({name:’tom’}, 1)
# 更改數據
db.coll.update({name:’tom’, age:22}, {$set:{name:’tom’, age:222}})
# 查看數據
db.coll.find()
# 查看一條數據
db.coll.findOne()
db.coll.find({}, {name:1, ‘_id’:0}) # 1表示顯示,0表示不顯示(find默認顯示_id)
# 格式化顯示數據,使數據更加清晰明了
db.coll.find().pretty()
# 使用and,or查看數據
db.coll.find({name:’tom’, age:22}) # 等同and使用
db.coll.find({$or:[{name:’tom’}, {age:21}]}) # or使用
# 操作符大於,小於,等於,不等於,大於不等於,小於不等於
db.coll.find({age: {$gt: 22}}) # 大於
db.coll.find({age: {$lt: 22}}) # 大於
db.coll.find({age: 22}) # 等於
db.coll.find({age: {$ne: 22}}) # 不等於
db.coll.find({age: {$gte: 22}}) # 大於等於
db.coll.find({age: {$lte: 22}}) # 小於等於
# 顯示從skip之後limit個
db.coll.find().limit(2).skip(1)
#———————–# # 用戶
# 3.x之後版本添加用戶
use admin
db.createUser({user:’nu’, pwd:’nu’, roles:[{role:’readWrite’,db:’admin’}]})
# 用戶認證
db.auth(“nu”, “nu”);
# 顯示當前所有用戶
show users;
db.system.users.find()
3.x版本刪除用戶
db.removeUser(‘nu’) # 不推薦使用,已經廢棄
db.dropUser(“nu”);
# 當前db版本
db.version();
# 當前db的鏈接機器地址和埠
db.getMongo();
# 備份到備份目錄
mongodump
# 從備份目錄恢復備份語句。
mongorestore
咱們下期見。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128567.html