生活随笔
收集整理的這篇文章主要介紹了
sqlite3数据库的性能问题报告
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用jdbc測了一下sqlite3的插入數(shù)據(jù)的效率,使用整體事務(wù)與不使用整體事務(wù),差別非常明顯。 cpu: 1G, 內(nèi)存:512MB
使用整體事務(wù):1000000條記錄,需要93秒鐘。
使用逐個插入提交事務(wù):1秒鐘只能處理20條記錄。
啟動程序時把java堆最
使用jdbc測了一下sqlite3的插入數(shù)據(jù)的效率,使用整體事務(wù)與不使用整體事務(wù),差別非常明顯。 cpu: 1G, 內(nèi)存:512MB
使用整體事務(wù):1000000條記錄,需要93秒鐘。
使用逐個插入提交事務(wù):1秒鐘只能處理20條記錄。
啟動程序時把java堆最大空間設(shè)大一些,不然可能出現(xiàn)內(nèi)存不夠的異常。
java -Xmx256M TestConn
測試后的結(jié)果顯示如下:
以下是測試代碼:
import java.sql.*;public class TestConn {void test(){Connection conn = null;Statement stmt = null;ResultSet rset = null;System.out.println(new java.util.Date());try {Class.forName("SQLite.JDBCDriver");conn = DriverManager.getConnection("jdbc:sqlite:/f:/test.db", //jdbc:oracle:thin:@hex:1521:ORCL"", "");conn.setAutoCommit(false);stmt = conn.createStatement();stmt.executeUpdate("create table hehe(id number, name varchar(32))");System.out.println("建表hehe成功!");for (int i=0; i<1000000; i++){stmt.executeUpdate("INSERT INTO hehe VALUES("+i+", '我愛中國"+i+"')");}conn.commit();System.out.println("不建索引查詢:");System.out.println(new java.util.Date());rset = stmt.executeQuery("SELECT id, name FROM hehe where id > 499999 and name ='我愛中國500001'");if (rset.next()){System.out.println(rset.getInt("id"));System.out.println(rset.getString("name"));}if (rset!=null){ rset.close(); rset = null; }System.out.println(new java.util.Date());System.out.println("建索引:");System.out.println(new java.util.Date());stmt.executeUpdate("CREATE INDEX hehe_idx on hehe(id)");stmt.executeUpdate("CREATE INDEX hehe_idx2 on hehe(name)");conn.commit();System.out.println(new java.util.Date());System.out.println("建索引后的查詢:");System.out.println(new java.util.Date());rset = stmt.executeQuery("SELECT id, name FROM hehe where id > 499999 and name = '我愛中國500001'");if (rset.next()){System.out.println(rset.getInt("id"));System.out.println(rset.getString("name"));}System.out.println(new java.util.Date());stmt.executeUpdate("drop table hehe");System.out.println("刪除表hehe成功!");conn.commit();System.out.println(new java.util.Date());} catch(ClassNotFoundException cnfe) {System.out.println("Can't find class for driver: "+cnfe.getMessage());System.exit(-1);} catch (SQLException e){System.out.println(e.getMessage());System.exit(-1);} finally {try {if (rset!=null) rset.close();stmt.close();conn.close();} catch (SQLException e) {}}}public static void main(String[] args) {TestConn conn = new TestConn();conn.test();}
}
轉(zhuǎn)載于:https://www.cnblogs.com/elect-fans/archive/2012/08/09/2630612.html
總結(jié)
以上是生活随笔為你收集整理的sqlite3数据库的性能问题报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。