日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

数据库新秀 postgresql vs mongo 性能PK

發(fā)布時(shí)間:2025/4/5 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库新秀 postgresql vs mongo 性能PK 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前幾天看了一篇文章<High Performance JSON PostgreSQL vs. MongoDB> 發(fā)布在Percona Live Europe 2017

作者是<Dominic Dwyer Wei Shan Ang>,作者的觀點(diǎn)是PostgreSQL更好,恰巧沒有玩過postgresql,僅僅聽說過。

碼農(nóng)的第一特征就是相信實(shí)驗(yàn),故postgresql走起

上一篇文章<mongodb索引--1億條記錄的查詢從55.7秒到毫秒級(jí)別> 我們做了一個(gè)mongo的實(shí)驗(yàn)

  >>插入1億條記錄,約耗時(shí)1個(gè)小時(shí)

  >>無(wú)索引查詢一條記錄耗時(shí)為55.7秒

  >>有索引查詢一條記錄耗時(shí)小于1秒

1.去官網(wǎng)下載psotgresql :https://www.postgresql.org/

下載最新版本11.1 windows安裝,step by step

2.客戶端,我選了pgadmin:https://www.pgadmin.org/

? 下載最新版本v3.6 windows安裝,step by step

3.創(chuàng)建新的數(shù)據(jù)庫(kù)www

?

?4.創(chuàng)建新表

/* String sql = "CREATE TABLE PERSON " +"(ID INT PRIMARY KEY NOT NULL," +" NAME TEXT NOT NULL, " +" AGE INT NOT NULL, " +" ADDRESS CHAR(50), " +" SALARY REAL)";stmt.executeUpdate(sql);*/

5.插入1億條記錄

java client 依賴包

<dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.5</version></dependency>

java程序

public void postgresqlOneByOneInsert() {try {long start=System.currentTimeMillis();Class.forName("org.postgresql.Driver");Connection connection = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/www", "postgres", "root");PreparedStatement stmt = connection.prepareStatement("INSERT INTO PERSON(ID,NAME,AGE,ADDRESS,SALARY) values(?,?,?,?,?);"); for(int i=0;i<100000000;i++) { stmt.setInt(1, i+1); stmt.setString(2, "mkyong"+i); stmt.setInt(3, i%100); stmt.setString(4, "address"+i); stmt.setFloat(5, 25000.00f); stmt.executeUpdate(); } /* String sql = "CREATE TABLE PERSON " + "(ID INT PRIMARY KEY NOT NULL," + " NAME TEXT NOT NULL, " + " AGE INT NOT NULL, " + " ADDRESS CHAR(50), " + " SALARY REAL)"; stmt.executeUpdate(sql);*/ /* ResultSet rs = stmt.executeQuery( "SELECT * FROM STUDENT;" ); while ( rs.next() ) { int id = rs.getInt("sid"); String name = rs.getString("name"); System.out.println( "ID = " + id ); System.out.println( "NAME = " + name );; System.out.println(); } rs.close();*/ stmt.close(); connection.close(); System.out.println("耗時(shí):"+(System.currentTimeMillis()-start)+" 毫秒"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } }

然后是漫長(zhǎng)的時(shí)間等待插入完成。

? ?>>插入性能:1億條記錄導(dǎo)入時(shí)間耗時(shí):36599195 毫秒~10個(gè)小時(shí)

 >>無(wú)索引時(shí)讀取性能:SELECT * FROM PERSON where name='mkyong90000000';? ?9 secs 574 msec

? ?>>有索引時(shí)讀取性能:create index name_ind on PERSON(NAME); //創(chuàng)建索引耗時(shí)5 min 9 secs.?SELECT * FROM PERSON where name='mkyong90000000'; //61ms

?

小結(jié):

  • 插入性能:mongo的效率為postgresql的10倍

  • 讀取性能:無(wú)索引時(shí),postgresql是mongo的6倍左右

  • 創(chuàng)建索引:postgrep要快,有索引查詢不能確定查詢時(shí)間差異
  • 轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/10193029.html

    總結(jié)

    以上是生活随笔為你收集整理的数据库新秀 postgresql vs mongo 性能PK的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。