mysql數據庫測試對比(比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-hk/n/128567.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相關推薦

  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • JDK Flux 背壓測試

    本文將從多個方面對 JDK Flux 的背壓測試進行詳細闡述。 一、Flux 背景 Flux 是 JDK 9 對響應式編程的支持。它為響應式編程提供了一種基於推拉模型的方式,以支持…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • Mapster:一個高性能的對象映射庫

    本文將深入介紹furion.extras.objectmapper.mapster,一個高性能的對象映射庫,解釋它是如何工作的以及如何在你的項目中使用它。 一、輕鬆地實現對象之間的…

    編程 2025-04-28
  • Powersploit:安全評估與滲透測試的利器

    本文將重點介紹Powersploit,並給出相關的完整的代碼示例,幫助安全人員更好地運用Powersploit進行安全評估和滲透測試。 一、Powersploit簡介 Powers…

    編程 2025-04-28
  • Python接口自動化測試

    本文將從如下多個方面對Python編寫接口自動化進行詳細闡述,包括基本介紹、常用工具、測試框架、常見問題及解決方法 一、基本介紹 接口自動化測試是軟件測試中的一種自動化測試方式。通…

    編程 2025-04-27
  • Think-ORM數據模型及數據庫核心操作

    本文主要介紹Think-ORM數據模型建立和數據庫核心操作。 一、模型定義 Think-ORM是一個開源的ORM框架,用於簡化在PHP應用中(特別是ThinkPHP)與關係數據庫之…

    編程 2025-04-27

發表回復

登錄後才能評論