第四章 查询语句:MongoDb VS MySql 4.1

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:
初始化部分
System.out.println("基础初始化部分开始");
    Mongo m = new Mongo("localhost", 27017);
    // 选择数据库,如果没有这个数据库的话,会自动建立
    DB db = m.getDB("ms_basic");
    // 建立一个集合,和数据库一样,如果没有,会自动建立
    DBCollection coll = db.getCollection("leeCollection");
    DBCursor cur = null;
    long startTime = 0;
    BasicDBObject query = null;
    BasicDBObject field = null;
    BasicDBObject sort = null;
    List<Object> inList = null;
System.out.println("基础初始化部分完毕");
,,,,
   public   static   void  showAllDataFromCursor(DBCursor cur) {
     while  (cur.hasNext()) {
       System. out .println(cur.next());
     }
}
普通查询
System.out.println("-----------华丽分隔线---------------");
System. out .println( "
SELECT * FROM schedule
WHERE startDate='2010-11-18' and disciplineName='田径'
and phaseName='决赛'" );
    startTime = System. currentTimeMillis ();
    query =  new  BasicDBObject();
    query.put( "startDate" , "2010-11-18" );
    query. put ( "disciplineName" "田径" );
    query.put( "phaseName" , "决赛" );
    cur = coll.find(query);  
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
showAllDataFromCursor (cur);
System. out .println( "-----------华丽分隔线---------------" );
    System. out .println( "SELECT * FROM schedule WHERE rsc='ATM033101'" );
    startTime = System. currentTimeMillis ();  
    query =  new  BasicDBObject();
    query.put( "rsc" , "ATM033101" );
    cur = coll.find(query);  
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
showAllDataFromCursor (cur);
System. out .println( "-----------华丽分隔线---------------" );
System . out .println( "
SELECT * FROM schedule
order by startDate asc,startTime asc limit 2,10" );
sort =  new  BasicDBObject();
    sort.put( "startDate" , 1);
sort.put( "startTime" , 1);
    startTime = System. currentTimeMillis ();  
    cur = coll.find().sort(sort).limit(2).skip(10); 
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
     showAllDataFromCursor (cur);
高级查询
http://www.mongodb.org/display/DOCS/Advanced+Queries
Introduction
Retrieving a Subset of Fields
$slice operator
Conditional Operators : <, &lt;=, >, &gt;=
Conditional Operator : $ne
Conditional Operator : $in
Conditional Operator : $nin
Conditional Operator : $mod
Conditional Operator: $all
Conditional Operator : $size
Conditional Operator: $exists
Conditional Operator: $type
$or
Regular Expressions
Value in an Array
Conditional Operator: $elemMatch
Value in an Embedded Object
Meta operator: $not
Javascript Expressions and $where
sort()
limit()
skip()
snapshot()
count()
group()
Special operators
See Also 
这里列举部分示例:
Regular Expressions
System. out .println( "-----------华丽分隔线---------------" );
System. out .println( "
SELECT * FROM schedule
WHERE rsc like 'ATM%'and length(rsc)=9" );
    startTime = System. currentTimeMillis ();  
    query =  new  BasicDBObject();
    query.put( "rsc" ,Pattern. compile ( "ATM[A-Z0-9]{6}" , Pattern. CASE_INSENSITIVE ));
    cur = coll.find(query);  
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
showAllDataFromCursor (cur);
这里可以理解为: rsc like 'ATM%'and length(rsc)=9
选择固定字段
System. out .println( "-----------华丽分隔线---------------" );
    System. out .println( "SELECT rsc,startDate,startTime, competitionStatus FROM schedule WHERE competitionStatus =1  order by startDate asc,startTime asc limit 10" );
    startTime = System. currentTimeMillis ();  
    query =  new  BasicDBObject();
    query.put( "competitionStatus" , 1 ); 
    field =  new  BasicDBObject();
     field.put( "rsc" , true );
    field.put( "startDate" , true );
    field.put( "startTime" , true );
    field.put( "competitionStatus" , true );
    cur = coll.find(query,field).sort(sort).limit(10);  
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
showAllDataFromCursor (cur);
相关文章
|
6月前
|
SQL 缓存 监控
MySQL缓存机制:查询缓存与缓冲池优化
MySQL缓存机制是提升数据库性能的关键。本文深入解析了MySQL的缓存体系,包括已弃用的查询缓存和核心的InnoDB缓冲池,帮助理解缓存优化原理。通过合理配置,可显著提升数据库性能,甚至达到10倍以上的效果。
|
6月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
8月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
416 0
|
6月前
|
SQL 关系型数据库 MySQL
MySQL的查询操作语法要点
储存过程(Stored Procedures) 和 函数(Functions) : 储存过程和函数允许用户编写 SQL 脚本执行复杂任务.
272 14
|
6月前
|
SQL 关系型数据库 MySQL
MySQL的查询操作语法要点
以上概述了MySQL 中常见且重要 的几种 SQL 查询及其相关概念 这些知识点对任何希望有效利用 MySQL 进行数据库管理工作者都至关重要
160 15
|
6月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
6月前
|
SQL 关系型数据库 MySQL
MySQL入门指南:从安装到第一个查询
本文为MySQL数据库入门指南,内容涵盖从安装配置到基础操作与SQL语法的详细教程。文章首先介绍在Windows、macOS和Linux系统中安装MySQL的步骤,并指导进行初始配置和安全设置。随后讲解数据库和表的创建与管理,包括表结构设计、字段定义和约束设置。接着系统介绍SQL语句的基本操作,如插入、查询、更新和删除数据。此外,文章还涉及高级查询技巧,包括多表连接、聚合函数和子查询的应用。通过实战案例,帮助读者掌握复杂查询与数据修改。最后附有常见问题解答和实用技巧,如数据导入导出和常用函数使用。适合初学者快速入门MySQL数据库,助力数据库技能提升。
|
7月前
|
存储 关系型数据库 MySQL
使用命令行cmd查询MySQL表结构信息技巧分享。
掌握了这些命令和技巧,您就能快速并有效地从命令行中查询MySQL表的结构信息,进而支持数据库维护、架构审查和优化等工作。
612 9
|
12月前
|
NoSQL 测试技术 MongoDB
微服务——MongoDB实战演练——根据上级ID查询文章评论的分页列表
本节介绍如何根据上级ID查询文章评论的分页列表,主要包括以下内容:(1)在CommentRepository中新增`findByParentid`方法,用于按父ID查询子评论分页列表;(2)在CommentService中新增`findCommentListPageByParentid`方法,封装分页逻辑;(3)提供JUnit测试用例,验证功能正确性;(4)使用Compass插入测试数据并执行测试,展示查询结果。通过这些步骤,实现对评论的高效分页查询。
203 0
|
6月前
|
SQL 监控 关系型数据库
MySQL高级查询技巧:子查询、联接与集合操作
本文深入解析了MySQL高级查询的核心技术,包括子查询、联接和集合操作,通过实际业务场景展示了其语法、性能差异和适用场景,并提供大量可复用的代码示例,助你从SQL新手进阶为数据操作高手。

推荐镜像

更多