mysql大表分页查询优化
mysql分页查询是先查询出来所有数据,然后跳过offset,取limit条记录,造成了越往后的页数,查询时间越长一般优化思路是转换offset,让offset尽可能的小,最好能每次查询都是第一页,也...
2024.11.131.准备环境
1.1 mongodb下载
1.2 mongodb启动
C:\mongodb\bin\mongod --dbpath D:\mongodb\data
1.3 可视化mongo工具Robo 3T下载
2.准备数据
org.mongodb mongo-java-driver 3.6.1java代码执行
public static void main(String[] args) { try { /**** Connect to MongoDB ****/ // Since 2.10.0, uses MongoClient MongoClient mongo = new MongoClient("localhost", 27017); /**** Get database ****/ // if database doesn‘t exists, MongoDB will create it for you DB db = mongo.getDB("www"); /**** Get collection / table from ‘testdb‘ ****/ // if collection doesn‘t exists, MongoDB will create it for you DBCollection table = db.getCollection("person"); /**** insert ****/ // create a document to store key and value BasicDBObject document=null; for(int i=0;i {:$gt => last_id_object}}).limit(batch_size) end collection_name = collection[:name] @logger.debug("collection_data is: #{@collection_data}") last_id = @collection_data[index][:last_id] #@logger.debug("last_id is #{last_id}", :index => index, :collection => collection_name) # get batch of events starting at the last_place if it is set last_id_object = last_id if since_type == ‘id‘ last_id_object = BSON::ObjectId(last_id) elsif since_type == ‘time‘ if last_id != ‘‘ last_id_object = Time.at(last_id) end end cursor = get_cursor_for_collection(@mongodb, collection_name, last_id_object, batch_size)使用java实现
import java.net.UnknownHostException;import java.util.List;import org.bson.types.ObjectId;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.MongoClient;import com.mongodb.MongoException;public class Test { public static void main(String[] args) { int pageSize=50000; try { /**** Connect to MongoDB ****/ // Since 2.10.0, uses MongoClient MongoClient mongo = new MongoClient("localhost", 27017); /**** Get database ****/ // if database doesn‘t exists, MongoDB will create it for you DB db = mongo.getDB("www"); /**** Get collection / table from ‘testdb‘ ****/ // if collection doesn‘t exists, MongoDB will create it for you DBCollection table = db.getCollection("person"); DBCursor dbObjects; Long cnt=table.count(); //System.out.println(table.getStats()); Long page=getPageSize(cnt,pageSize); ObjectId lastIdObject=new ObjectId("5bda8f66ef2ed979bab041aa"); for(Long i=0L;imysql分页查询是先查询出来所有数据,然后跳过offset,取limit条记录,造成了越往后的页数,查询时间越长一般优化思路是转换offset,让offset尽可能的小,最好能每次查询都是第一页,也...
2024.11.13前言应用系统性能测试过程中,性能优化是绕不开的话题,对测试人员而言,性能优化的第一站就是SQL语句的优化与分析。因此本文主要以MySQL数据库为例,介绍常见的慢查询SQL语句执行效率分析与优化方法和简...
2024.11.12一、前言在数据库中执行查询(select)在我们工作中是非常常见的,工作中离不开CRUD,在执行查询(select)时,多表关联也非常常见,我们用的也比较多,那么mysql内部是如何执行关联查询的呢?...
2024.11.15MySQL是关系型数据库。 优势:在不同的引擎上有不同 的存储方式。查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。开源数据库的份额在不断增加,mysql的份额页在持续增长。 缺点:在...
2024.11.15生产环境中,随着数据库表数据量的不断增加或者表结构的变化,经常会导致慢查询的问题,慢查询即select……WHERE……形式的查询语句响应速度慢。优化慢查询是一个很重要的工作,无论是满足应用程序的快速...
2024.11.12