.reIndex()
删除索引
db.COLLECTION_NAME.dropIndex("INDEX-NAME")
db.COLLECTION_NAME.dropIndexes()
_id 索引无法删除。
执行计划
参考:MongoDB干货系列2-MongoDB执行计划分析详解(1) | MongoDB中文社区、MongoDB - 执行计划 - 听雨危楼 - 博客园
for ( var i= 1 ; i< 10000000 ; i+ + ) { db. indexDemo. insert ( {_id:i , num:'index:' + i , address:'address:i%9999' }) }
默认的查询计划 queryPlanner
db. indexDemo. find( {num:'index:99999' }) . explain ( )
db. indexDemo. createIndex( { num: 1 } )
db. indexDemo. getIndexes( )
db. indexDemo. dropIndex( "num_1" )
{
"explainVersion" : "1" ,
"queryPlanner" : {
"namespace" : "study.goods" , 【查询的表】
"indexFilterSet" : false , 【是否有indexfilter】
"parsedQuery" : { 【查询过滤条件】
"qty" : {
"$gt" : 50
}
} ,
"queryHash" : "3DC2392F" ,
"planCacheKey" : "B7F8CFFA" ,
"maxIndexedOrSolutionsReached" : false ,
"maxIndexedAndSolutionsReached" : false ,
"maxScansToExplodeReached" : false ,
"winningPlan" : { 【最优执行计划详细内容】
"stage" : "FETCH" , 【FETCH :通过返回的index扫描。COLLSCAN :全表扫描】
"inputStage" : { 【子stage】
"stage" : "IXSCAN" , 【表示进行索引扫描】
"keyPattern" : { 【扫描的索引内容】
"qty" : 1
} ,
"indexName" : "qty_1" , 【使用的索引名称】
"isMultiKey" : false , 【是否多列索引。索引建立在array上时是true 】
"multiKeyPaths" : {
"qty" : [ ]
} ,
"isUnique" : false ,
"isSparse" : false ,
"isPartial" : false ,
"indexVersion" : 2 ,
"direction" : "forward" , 【查询的顺序:forward升序、backward降序】
"indexBounds" : { 【索引扫描范围,没有制定范围就是[ MaxKey, MinKey] 】
"qty" : [
"(50.0, inf.0]"
]
}
}
} ,
"rejectedPlans" : [ ] 【其它非最优的执行计划】
} ,
"command" : {
"find" : "goods" ,
"filter" : {
"qty" : {
"$gt" : 50
}
} ,
"sort" : {
"qty" : 1
} ,
"$db" : "study"
} ,
"serverInfo" : { 【服务器信息】
"host" : "fe9b0d04fcbd" ,
"port" : 27017 ,
"version" : "5.0.5" ,
"gitVersion" : "d65fd89df3fc039b5c55933c0f71d647a54510ae"
} ,
"serverParameters" : {
"internalQueryFacetBufferSizeBytes" : 104857600 ,
"internalQueryFacetMaxOutputDocSizeBytes" : 104857600 ,
"internalLookupStageIntermediateDocumentMaxSizeBytes" : 104857600 ,
"internalDocumentSourceGroupMaxMemoryBytes" : 104857600 ,
"internalQueryMaxBlockingSortMemoryUsageBytes" : 104857600 ,
"internalQueryProhibitBlockingMergeOnMongoS" : 0 ,
"internalQueryMaxAddToSetBytes" : 104857600 ,
"internalDocumentSourceSetWindowFieldsMaxMemoryBytes" : 104857600
} ,
"ok" : 1
}
附加执行状态 executionStats
db. indexDemo. find( {num:'index:99999' }) . explain ( "executionStats" )
{
"explainVersion" : "1" ,
"queryPlanner" : { ... } ,
"executionStats" : {
"executionSuccess" : true , 【是否执行成功】
"nReturned" : 1 , 【匹配到的文档数】
"executionTimeMillis" : 0 , 【选择和查询执行计划所需时间。毫秒】
"totalKeysExamined" : 1 , 【扫描的索引条目数】
"totalDocsExamined" : 1 , 【扫描文档数】
"executionStages" : { 【最优执行计划的完整信息】
"stage" : "FETCH" , 【FETCH :根据索引结果去扫描文档】
"nReturned" : 1 , 【stage= FETCH 时,跟上面的nReturned一样】
"executionTimeMillisEstimate" : 0 , 【检索文档获得数据的时间】
"works" : 2 , 【执行查询阶段的各个工作以“单元”划分,这里表示工作单元数】
"advanced" : 1 , 【返回到父阶段的结果数】
"needTime" : 0 , 【中间结果返回给父级的工作循环次数】
"needYield" : 0 ,
"saveState" : 0 ,
"restoreState" : 0 ,
"isEOF" : 1 ,
"docsExamined" : 1 ,
"alreadyHasObj" : 0 ,
"inputStage" : { ... }
}
} ,
"command" : {
"find" : "indexDemo" ,
"filter" : {
"num" : "index:99999"
} ,
"$db" : "study"
} ,
"serverInfo" : { ... } ,
"serverParameters" : {
"internalQueryFacetBufferSizeBytes" : 104857600 ,
"internalQueryFacetMaxOutputDocSizeBytes" : 104857600 ,
"internalLookupStageIntermediateDocumentMaxSizeBytes" : 104857600 ,
"internalDocumentSourceGroupMaxMemoryBytes" : 104857600 ,
"internalQueryMaxBlockingSortMemoryUsageBytes" : 104857600 ,
"internalQueryProhibitBlockingMergeOnMongoS" : 0 ,
"internalQueryMaxAddToSetBytes" : 104857600 ,
"internalDocumentSourceSetWindowFieldsMaxMemoryBytes" : 104857600
} ,
"ok" : 1
}
关键参数
耗时 executionTimeMillis
executionStats.executionTimeMillis:整体查询时间。
executionStats.executionStages.executionTimeMillisEstimate:检索Document获得数据的时间
executionStats.executionStages.inputStage.executionTimeMillisEstimate:扫描文档 Index所用时间
扫描数 nReturned
nReturned:查询结果返回的条目数
totalKeysExamined:总索引扫描的条目数
totalDocsExamined :总索引扫描的条目数
扫描数越少越好,理想情况: nReturned = totalKeysExamined = otalDocsExamined
stage 参数表
类型
描述
COLLSCAN
全表扫描
IXSCAN
索引扫描
FETCH
根据索引去检索指定document
SHARD_MERGE
将各分片的返回结果合并
SORT
在内存中进行了排序
LIMIT
限制返回数
SKIP
使用skip进行跳过
IDHACK
针对_id进行的查询
SHARDING_FILTER
通过mongos对分片数据进行查询
COUNT
利用db.coll.explain().count()之类进行count运算
TEXT
全文索引
PROJECTION
限定返回字段时候
返回最优与备选计划 allPlansExecution
db.indexDemo.find({num:'index:99999'}).explain("allPlansExecution")
慢查询分析
开启内置查询分析器
db. setProfilingLevel( [ 0 , 1 , 2 ] , m)
0 :不记录
1 :记录超过阈值m的记录
2 :记录所有读写操作
db. setProfilingLevel( 1 , 100 )
db. setProfilingLevel( 2 )
查看监听结果
db.system.profile.find().sort({millis:-1}).limit(3)
结果分析
慢查询常见于:
应用设计不合理;
数据模型不合理;
硬件配置;
缺少索引;
explain 分析是否跑索引
创建索引
测试数据
db. goods. insertMany( [
{ item: "canvas" , qty: 100 , size: { h: 28 , w: 35.5 , uom: "cm" }, status :
"A" },
{ item: "journal" , qty: 25 , size: { h: 14 , w: 21 , uom: "cm" }, status :
"A" },
{ item: "mat" , qty: 85 , size: { h: 27.9 , w: 35.5 , uom: "cm" }, status :
"A" },
{ item: "mousepad" , qty: 25 , size: { h: 19 , w: 22.85 , uom: "cm" },
status : "P" },
{ item: "notebook" , qty: 50 , size: { h: 8.5 , w: 11 , uom: "in" }, status :
"P" },
{ item: "paper" , qty: 100 , size: { h: 8.5 , w: 11 , uom: "in" }, status :
"D" },
{ item: "planner" , qty: 75 , size: { h: 22.85 , w: 30 , uom: "cm" }, status :
"D" },
{ item: "postcard" , qty: 45 , size: { h: 10 , w: 15.25 , uom: "cm" },
status : "A" },
{ item: "sketchbook" , qty: 80 , size: { h: 14 , w: 21 , uom: "cm" }, status :
"A" },
{ item: "sketch pad" , qty: 95 , size: { h: 22.85 , w: 30.5 , uom: "cm" },
status : "A" }
] ) ;
db. inventory. insertMany( [
{ _id: 1 , item: "abc" , stock: [ { size: "S" , color: "red" , quantity: 25 }, {
size: "S" , color: "blue" , quantity: 10 }, { size: "M" , color: "blue" ,
quantity: 50 }] },
{_id:2 , item:"def" , stock:[ {size:"S" , color:"blue" , quantity:20 },
{size:"M" , color:"blue" , quantity:5 }, {size:"M" , color:"black" , quantity:10 },
{size:"L" , color:"red" , quantity:2 }] },
{_id:3 , item:"ijk" , stock:[ {size:"M" , color:"blue" , quantity:15 },
{size:"L" , color:"blue" , quantity:100 }, {size:"L" , color:"red" , quantity:25 }] }
] )
单字段索引 Single Field
单列索引
db..createIndex(keys, options) options:
db. indexDemo. find( {num:"index:600" }) . explain ( )
db. indexDemo. createIndex( {num:1 })
db. indexDemo. find( {num:"index:600" }) . explain ( )
给嵌入式字段创建索引
{
"_id" : ObjectId( "570c04a4ad233577f97dc459" ) ,
"score" : 1034 ,
"location" : { state: "NY" , city: "New York" }
}
db. < table > . createIndex( { "location.state" : 1 } )
db. < table > . find( { "location.state" : "CA" } )
db. < table > . find( { "location.city" : "Albany" , "location.state" : "NY" } )
给整个内嵌文档创建索引
{
"_id" : ObjectId( "570c04a4ad233577f97dc459" ) ,
"score" : 1034 ,
"location" : { state: "NY" , city: "New York" }
}
db. < table > . createIndex( { location: 1 } )
db. records. find( { location: { city: "New York" , state: "NY" } } )
复合索引 Compound Index
db.collection.createIndex( { : , : , ... } )
⚠️不能 创建具有hashed索引类型的复合索引。如果试图创建包含hashed索引字段的复合索引,将收到一个错误。
{
"_id" : ObjectId( . . . ) ,
"item" : "Banana" ,
"category" : [ "food" , "produce" , "grocery" ] ,
"location" : "4th Street Store" ,
"stock" : 4 ,
"type" : "cases"
}
db. < table > . createIndex( { "item" : 1 , "stock" : 1 } )
db. < table > . find( { item: "Banana" } )
db. < table > . find( { item: "Banana" , stock: { $gt: 5 } } )
⚠️特别注意字段的顺序与排序。复合索引遵循最左匹配原则。
多键索引 Multikey indexes
支持对数组中每个元素创建索引。元素类型:string、number、 nested documents(嵌套文档) 。
number 类型数组
db. inventory. remove( {})
db. inventory. insertMany( [
{ _id: 5 , type : "food" , item: "aaa" , ratings: [ 5 , 8 , 9 ] },
{ _id: 6 , type : "food" , item: "bbb" , ratings: [ 5 , 9 ] },
{ _id: 7 , type : "food" , item: "ccc" , ratings: [ 9 , 5 , 8 ] },
{ _id: 8 , type : "food" , item: "ddd" , ratings: [ 9 , 5 ] },
{ _id: 9 , type : "food" , item: "eee" , ratings: [ 5 , 9 , 5 ] }
] )
db. inventory. find( {ratings:[ 5 , 9 ] }) . explain ( "executionStats" )
db. inventory. createIndex( { ratings: 1 } )
嵌套文档 类型数组
单列索引
db. inventory. dropIndexes( )
db. inventory. insertMany( [
{ type : "food" , item: "aaa" , ratings: [ 5 , 8 , 9 ] , size:[ {w:10 , h:165 }, {w:9 , h:158 }] },
{type : "food" , item: "aaa" , ratings: [ 5 , 8 , 9 ] , size:[ {w:11 , h:175 }, {w:7 , h:142 }] },
{type : "food" , item: "aaa" , ratings: [ 5 , 8 , 9 ] , size:[ {w:15 , h:163 }, {w:8 , h:157 }] }
] )
db. inventory. find( {"size.w" :10 }) . explain ( "executionStats" )
db. inventory. createIndex( {"size.w" :1 })
复合索引
db. inventory. createIndex( {"size.w" :1 , "size.h" :2 })
db. inventory. find( {"size.w" :10 }) . explain ( "executionStats" )
db. inventory. find( {"size.w" :10 }, {"size.h" :10 }) . explain ( "executionStats" )
地理空间索引 Geospatial Index
2dsphere索引,用于存储和查找球面上的点
2d索引,用于存储和查找平面上的点
db. company. insert (
{ loc : { type : "Point" , coordinates : [ 116.482451 , 39.914176 ] } , name : "来广营地铁站-叶青北园" , category : "Parks" }
)
# 2dsphere 或者 2d 。可以建立组合索引。
db. company. ensureIndex ( { loc : "2dsphere" } )
db. company. find ( {
"loc" : {
"$geoWithin" : {
"$center" : [ [ 116.482451 , 39.914176 ] , 0.05 ]
}
}
} )
全文索引 Text Index
一个集合最多一个全文索引,可以覆盖多个字段。中文分词支持不佳(推荐ES)。
db. < table> . createIndex ( { "fieldA" : "text" } )
db. < table> . createIndex (
{
fieldA : "text" ,
fieldB : "text"
}
)
db. store. insert ( [
{ _id : 1 , name : "Java Hut" , description : "Coffee and cakes" } ,
{ _id : 2 , name : "Burger Buns" , description : "Gourmet hamburgers" } ,
{ _id : 3 , name : "Coffee Shop" , description : "Just coffee" } ,
{ _id : 4 , name : "Clothes Clothes Clothes" , description : "Discountclothing" } ,
{ _id : 5 , name : "Java Shopping" , description : "Indonesian goods" }
] )
db. store. createIndex ( { name : "text" , description : "text" } )
db. store. find ( { $text : { $search : "java coffee shop" } } )
{ "_id" : 3 , "name" : "Coffee Shop" , "description" : "Just coffee" }
{ "_id" : 1 , "name" : "Java Hut" , "description" : "Coffee and cakes" }
{ "_id" : 5 , "name" : "Java Shopping" , "description" : "Indonesian goods" }
哈希索引 Hashed Index
只用于等值查询。
db. < table> . createIndex ( { "字段" : "hashed" } )
MongoDB 索引底层数据结构
文档类型数据库使用 BSON 格式保存数据,比 RDBMS 存储更方便。RDBMS 适合用于多表之间的关联的场景,而 BSON 可以把关联的数据存在一起。 比如MySQL使用 RDBMS 格式,数据的关联性强,范围查询普遍。所以底层使用B+树。 MongoDB使用B树,通过索引能更快访问,但不适合范围查询。 B树特点 :
多路搜索。
节点存储既存储索引又存储数据。
关键字在树中只出现一次。
跟B+树的区别:
你可能感兴趣的:(海量数据存储专栏,mongodb,数据库)
Pyecharts数据可视化大屏:打造沉浸式数据分析体验
我的运维人生
信息可视化 数据分析 数据挖掘 运维开发 技术共享
Pyecharts数据可视化大屏:打造沉浸式数据分析体验在当今这个数据驱动的时代,如何将海量数据以直观、生动的方式展现出来,成为了数据分析师和企业决策者关注的焦点。Pyecharts,作为一款基于Python的开源数据可视化库,凭借其丰富的图表类型、灵活的配置选项以及高度的定制化能力,成为了构建数据可视化大屏的理想选择。本文将深入探讨如何利用Pyecharts打造数据可视化大屏,并通过实际代码案例
Google earth studio 简介
陟彼高冈yu
旅游
GoogleEarthStudio是一个基于Web的动画工具,专为创作使用GoogleEarth数据的动画和视频而设计。它利用了GoogleEarth强大的三维地图和卫星影像数据库,使用户能够轻松地创建逼真的地球动画、航拍视频和动态地图可视化。网址为https://www.google.com/earth/studio/。GoogleEarthStudio是一个基于Web的动画工具,专为创作使用G
关于提高复杂业务逻辑代码可读性的思考
编程经验分享
开发经验 java 数据库 开发语言
目录前言需求场景常规写法拆分方法领域对象总结前言实际工作中大部分时间都是在写业务逻辑,一般都是三层架构,表示层(Controller)接收客户端请求,并对入参做检验,业务逻辑层(Service)负责处理业务逻辑,一般开发都是在这一层中写具体的业务逻辑。数据访问层(Dao)是直接和数据库交互的,用于查数据给业务逻辑层,或者是将业务逻辑层处理后的数据写入数据库。简单的增删改查接口不用多说,基本上写好一
SQL Server_查询某一数据库中的所有表的内容
qq_42772833
SQL Server 数据库 sqlserver
1.查看所有表的表名要列出CrabFarmDB数据库中的所有表(名),可以使用以下SQL语句:USECrabFarmDB;--切换到目标数据库GOSELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_TYPE='BASETABLE';对这段SQL脚本的解释:SELECTTABLE_NAME:这个语句的作用是从查询结果中选择TABLE_NAM
DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理
STU学生网页设计
网页设计 期末网页作业 html静态网页 html5期末大作业 网页设计 web大作业
️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程
深入理解 MultiQueryRetriever:提升向量数据库检索效果的强大工具
nseejrukjhad
数据库 python
深入理解MultiQueryRetriever:提升向量数据库检索效果的强大工具引言在人工智能和自然语言处理领域,高效准确的信息检索一直是一个关键挑战。传统的基于距离的向量数据库检索方法虽然广泛应用,但仍存在一些局限性。本文将介绍一种创新的解决方案:MultiQueryRetriever,它通过自动生成多个查询视角来增强检索效果,提高结果的相关性和多样性。MultiQueryRetriever的工
利用LangChain的StackExchange组件实现智能问答系统
nseejrukjhad
langchain microsoft 数据库 python
利用LangChain的StackExchange组件实现智能问答系统引言在当今的软件开发世界中,StackOverflow已经成为程序员解决问题的首选平台之一。而LangChain作为一个强大的AI应用开发框架,提供了StackExchange组件,使我们能够轻松地将StackOverflow的海量知识库集成到我们的应用中。本文将详细介绍如何使用LangChain的StackExchange组件
Day1笔记-Python简介&标识符和关键字&输入输出
~在杰难逃~
Python python 开发语言 大数据 数据分析 数据挖掘
大家好,从今天开始呢,杰哥开展一个新的专栏,当然,数据分析部分也会不定时更新的,这个新的专栏主要是讲解一些Python的基础语法和知识,帮助0基础的小伙伴入门和学习Python,感兴趣的小伙伴可以开始认真学习啦!一、Python简介【了解】1.计算机工作原理编程语言就是用来定义计算机程序的形式语言。我们通过编程语言来编写程序代码,再通过语言处理程序执行向计算机发送指令,让计算机完成对应的工作,编程
每日算法&面试题,大厂特训二十八天——第二十天(树)
肥学
⚡算法题⚡面试题每日精进 java 算法 数据结构
目录标题导读算法特训二十八天面试题点击直接资料领取导读肥友们为了更好的去帮助新同学适应算法和面试题,最近我们开始进行专项突击一步一步来。上一期我们完成了动态规划二十一天现在我们进行下一项对各类算法进行二十八天的一个小总结。还在等什么快来一起肥学进行二十八天挑战吧!!特别介绍小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章
MongoDB Oplog 窗口
喝醉酒的小白
MongoDB 运维
在MongoDB中,oplog(操作日志)是一个特殊的日志系统,用于记录对数据库的所有写操作。oplog允许副本集成员(通常是从节点)应用主节点上已经执行的操作,从而保持数据的一致性。它是MongoDB副本集实现数据复制的基础。MongoDBOplog窗口oplog窗口是指在MongoDB副本集中,从节点可以用来同步数据的时间范围。这个窗口通常由以下因素决定:Oplog大小:oplog的大小是有限
Faiss Tips:高效向量搜索与聚类的利器
焦习娜Samantha
FaissTips:高效向量搜索与聚类的利器faiss_tipsSomeusefultipsforfaiss项目地址:https://gitcode.com/gh_mirrors/fa/faiss_tips项目介绍Faiss是由FacebookAIResearch开发的一个用于高效相似性搜索和密集向量聚类的库。它支持多种硬件平台,包括CPU和GPU,能够在海量数据集上实现快速的近似最近邻搜索(AN
【华为OD技术面试真题 - 技术面】- python八股文真题题库(4)
算法大师
华为od 面试 python
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选**1.Python中的`with`**用途和功能自动资源管理示例:文件操作上下文管理协议示例代码工作流程解析优点2.\_\_new\_\_和**\_\_init\_\_**区别__new____init__区别总结3.**切片(Slicing)操作**基本切片语法
【华为OD技术面试真题 - 技术面】-测试八股文真题题库(1)
算法大师
华为od 面试 python 算法 前端
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.黑盒测试和白盒测试的区别2.假设我们公司现在开发一个类似于微信的软件1.0版本,现在要你测试这个功能:打开聊天窗口,输入文本,限制字数在200字以内。问你怎么提取测试点。功能测试性能测试安全性测试可用性测试跨平台兼容性测试网络环境测试3.接口测试的工具你了解哪些
python os 环境变量
CV矿工
python 开发语言 numpy
环境变量:环境变量是程序和操作系统之间的通信方式。有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过os.environ.get()取出来就行了。os.environ是一个环境变量的字典。环境变量的相关操作importos"""设置/修改环境变量:os.environ[‘环境变量名称’]=‘环境变量值’#其中key和value均为string类
【PG】常见数据库、表属性设置
江无羡
数据库
PG的常见属性配置方法数据库复制、备份相关表的复制标识单表操作批量表操作链接数据库复制、备份相关表的复制标识单表操作通过ALTER语句单独更改一张表的复制标识。ALTERTABLE[tablename]REPLICAIDENTITYFULL;批量表操作通过代码块的方式,对某个schema中的所有表一起更新其复制标识。SELECTtablename,CASErelreplidentWHEN'd'TH
【华为OD技术面试真题 - 技术面】- python八股文真题题库(1)
算法大师
华为od 面试 python
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.数据预处理流程数据预处理的主要步骤工具和库2.介绍线性回归、逻辑回归模型线性回归(LinearRegression)模型形式:关键点:逻辑回归(LogisticRegression)模型形式:关键点:参数估计与评估:3.python浅拷贝及深拷贝浅拷贝(Shal
nosql数据库技术与应用知识点
皆过客,揽星河
NoSQL nosql 数据库 大数据 数据分析 数据结构 非关系型数据库
Nosql知识回顾大数据处理流程数据采集(flume、爬虫、传感器)数据存储(本门课程NoSQL所处的阶段)Hdfs、MongoDB、HBase等数据清洗(入仓)Hive等数据处理、分析(Spark、Flink等)数据可视化数据挖掘、机器学习应用(Python、SparkMLlib等)大数据时代存储的挑战(三高)高并发(同一时间很多人访问)高扩展(要求随时根据需求扩展存储)高效率(要求读写速度快)
OPENAIGC开发者大赛企业组AI黑马奖 | AIGC数智传媒解决方案
RPA中国
人工智能 AIGC 传媒
在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。无论您是技术专家还是爱好者,希望能带给您不一样的知识和启发。让我们一起探索AIGC的无限可能,见证科技与创意的完美融合!创未来AI应用赛-企业组AI黑马奖作品名称:AIGC数智传媒解决方案参赛团队:深圳市三象智能技术
insert into select 主键自增_mybatis拦截器实现主键自动生成
weixin_39521651
insert into select 主键自增 mybatis delete返回值 mybatis insert返回主键 mybatis insert返回对象 mybatis plus insert返回主键 mybatis plus 插入生成id
前言前阵子和朋友聊天,他说他们项目有个需求,要实现主键自动生成,不想每次新增的时候,都手动设置主键。于是我就问他,那你们数据库表设置主键自动递增不就得了。他的回答是他们项目目前的id都是采用雪花算法来生成,因此为了项目稳定性,不会切换id的生成方式。朋友问我有没有什么实现思路,他们公司的orm框架是mybatis,我就建议他说,不然让你老大把mybatis切换成mybatis-plus。mybat
ES聚合分析原理与代码实例讲解
光剑书架上的书
大厂Offer收割机 面试题 简历 程序员读书 硅基计算 碳基计算 认知计算 生物计算 深度学习 神经网络 大数据 AIGC AGI LLM Java Python 架构设计 Agent 程序员实现财富自由
ES聚合分析原理与代码实例讲解1.背景介绍1.1问题的由来在大规模数据分析场景中,特别是在使用Elasticsearch(ES)进行数据存储和检索时,聚合分析成为了一个至关重要的功能。聚合分析允许用户对数据集进行细分和分组,以便深入探索数据的结构和模式。这在诸如实时监控、日志分析、业务洞察等领域具有广泛的应用。1.2研究现状目前,ES聚合分析已经成为现代大数据平台的核心组件之一。它支持多种类型的聚
关于Mysql 中 Row size too large (> 8126) 错误的解决和理解
秋刀prince
mysql mysql 数据库
提示:啰嗦一嘴,数据库的任何操作和验证前,一定要记得先备份!!!不会有错;文章目录问题发现一、问题导致的可能原因1、页大小2、行格式2.1compact格式2.2Redundant格式2.3Dynamic格式2.4Compressed格式3、BLOB和TEXT列二、解决办法1、修改页大小(不推荐)2、修改行格式3、修改数据类型为BLOB和TEXT列4、其他优化方式(可以参考使用)4.1合理设置数据
你可能遗漏的一些C#/.NET/.NET Core知识点
追逐时光者
C# .NET DotNetGuide编程指南 c# .net .netcore microsoft
前言在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NETCore拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。拾遗补漏GitHub开源地址https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/D
【从浅识到熟知Linux】Linux发展史
Jammingpro
从浅学到熟知Linux linux 运维 服务器
归属专栏:从浅学到熟知Linux个人主页:Jammingpro每日努力一点点,技术变化看得见文章前言:本篇文章记录Linux发展的历史,因在介绍Linux过程中涉及的其他操作系统及人物,本文对相关内容也有所介绍。文章目录Unix发展史Linux发展史开源Linux官网企业应用情况发行版本在学习Linux前,我们可能都会问Linux从哪里来?它是如何发展的。但在介绍Linux之前,需要先介绍一下Un
数据结构 | 栈和队列
TT-Kun
数据结构与算法 数据结构 栈 队列 C语言
文章目录栈和队列1.栈:后进先出(LIFO)的数据结构1.1概念与结构1.2栈的实现2.队列:先进先出(FIFO)的数据结构2.1概念与结构2.2队列的实现3.栈和队列算法题3.1有效的括号3.2用队列实现栈3.3用栈实现队列3.4设计循环队列结论栈和队列在计算机科学中,栈和队列是两种基本且重要的数据结构,它们在处理数据存储和访问顺序方面有着独特的规则和应用。本文将详细介绍栈和队列的概念、结构、实
Java爬虫框架(一)--架构设计
狼图腾-狼之传说
java 框架 java 任务 html解析器 存储 电子商务
一、架构图那里搜网络爬虫框架主要针对电子商务网站进行数据爬取,分析,存储,索引。爬虫:爬虫负责爬取,解析,处理电子商务网站的网页的内容数据库:存储商品信息索引:商品的全文搜索索引Task队列:需要爬取的网页列表Visited表:已经爬取过的网页列表爬虫监控平台:web平台可以启动,停止爬虫,管理爬虫,task队列,visited表。二、爬虫1.流程1)Scheduler启动爬虫器,TaskMast
Armv8.3 体系结构扩展--原文版
代码改变世界ctw
ARM-TEE-Android armv8 嵌入式 arm架构 安全架构 芯片 Trustzone Secureboot
快速链接:.ARMv8/ARMv9架构入门到精通-[目录]付费专栏-付费课程【购买须知】:个人博客笔记导读目录(全部)TheArmv8.3architectureextensionTheArmv8.3architectureextensionisanextensiontoArmv8.2.Itaddsmandatoryandoptionalarchitecturalfeatures.Somefeat
MongoDB知识概括
GeorgeLin98
持久层 mongodb
MongoDB知识概括MongoDB相关概念单机部署基本常用命令索引-IndexSpirngDataMongoDB集成副本集分片集群安全认证MongoDB相关概念业务应用场景:传统的关系型数据库(如MySQL),在数据操作的“三高”需求以及应对Web2.0的网站需求面前,显得力不从心。解释:“三高”需求:①Highperformance-对数据库高并发读写的需求。②HugeStorage-对海量数
【ARM Cortex-M 系列 2.3 -- Cortex-M7 Debug event 详细介绍】
主公讲 ARM
# ARM 系列 arm开发 debug event
请阅读【嵌入式开发学习必备专栏】文章目录Cortex-M7DebugeventDebugeventsCortex-M7Debugevent在ARMCortex-M7架构中,调试事件(DebugEvent)是由于调试原因而触发的事件。一个调试事件会导致以下几种情况之一发生:进入调试状态:如果启用了停滞调试(HaltingDebug),一个调试事件会使处理器在调试状态下停滞。通过将DHCSR.C_DE
Mongodb Error: queryTxt ETIMEOUT xxxx.wwwdz.mongodb.net
佛一脚
error react mongodb 数据库
背景每天都能遇到奇怪的问题,做个记录,以便有缘人能得到帮助!换了一台电脑开发nextjs程序。需要连接mongodb数据,对数据进行增删改查。上一台电脑好好的程序,新电脑死活连不上mongodb数据库。同一套代码,没任何修改,搞得我怀疑人生了,打开浏览器进入mongodb官网毫无问题,也能进入线上系统查看数据,网络应该是没问题。于是我尝试了一下手机热点,这次代码能正常跑起来,连接数据库了!!!是不
入门MySQL——查询语法练习
K_un
前言:前面几篇文章为大家介绍了DML以及DDL语句的使用方法,本篇文章将主要讲述常用的查询语法。其实MySQL官网给出了多个示例数据库供大家实用查询,下面我们以最常用的员工示例数据库为准,详细介绍各自常用的查询语法。1.员工示例数据库导入官方文档员工示例数据库介绍及下载链接:https://dev.mysql.com/doc/employee/en/employees-installation.h
遍历dom 并且存储(将每一层的DOM元素存在数组中)
换个号韩国红果果
JavaScript html
数组从0开始!!
var a=[],i=0;
for(var j=0;j<30;j++){
a[j]=[];//数组里套数组,且第i层存储在第a[i]中
}
function walkDOM(n){
do{
if(n.nodeType!==3)//筛选去除#text类型
a[i].push(n);
//con
Android+Jquery Mobile学习系列(9)-总结和代码分享
白糖_
JQuery Mobile
目录导航
经过一个多月的边学习边练手,学会了Android基于Web开发的毛皮,其实开发过程中用Android原生API不是很多,更多的是HTML/Javascript/Css。
个人觉得基于WebView的Jquery Mobile开发有以下优点:
1、对于刚从Java Web转型过来的同学非常适合,只要懂得HTML开发就可以上手做事。
2、jquerym
impala参考资料
dayutianfei
impala
记录一些有用的Impala资料
1. 入门资料
>>官网翻译:
http://my.oschina.net/weiqingbin/blog?catalog=423691
2. 实用进阶
>>代码&架构分析:
Impala/Hive现状分析与前景展望:http
JAVA 静态变量与非静态变量初始化顺序之新解
周凡杨
java 静态 非静态 顺序
今天和同事争论一问题,关于静态变量与非静态变量的初始化顺序,谁先谁后,最终想整理出来!测试代码:
import java.util.Map;
public class T {
public static T t = new T();
private Map map = new HashMap();
public T(){
System.out.println(&quo
跳出iframe返回外层页面
g21121
iframe
在web开发过程中难免要用到iframe,但当连接超时或跳转到公共页面时就会出现超时页面显示在iframe中,这时我们就需要跳出这个iframe到达一个公共页面去。
首先跳转到一个中间页,这个页面用于判断是否在iframe中,在页面加载的过程中调用如下代码:
<script type="text/javascript">
//<!--
function
JAVA多线程监听JMS、MQ队列
510888780
java多线程
背景:消息队列中有非常多的消息需要处理,并且监听器onMessage()方法中的业务逻辑也相对比较复杂,为了加快队列消息的读取、处理速度。可以通过加快读取速度和加快处理速度来考虑。因此从这两个方面都使用多线程来处理。对于消息处理的业务处理逻辑用线程池来做。对于加快消息监听读取速度可以使用1.使用多个监听器监听一个队列;2.使用一个监听器开启多线程监听。
对于上面提到的方法2使用一个监听器开启多线
第一个SpringMvc例子
布衣凌宇
spring mvc
第一步:导入需要的包;
第二步:配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi=
我的spring学习笔记15-容器扩展点之PropertyOverrideConfigurer
aijuans
Spring3
PropertyOverrideConfigurer类似于PropertyPlaceholderConfigurer,但是与后者相比,前者对于bean属性可以有缺省值或者根本没有值。也就是说如果properties文件中没有某个bean属性的内容,那么将使用上下文(配置的xml文件)中相应定义的值。如果properties文件中有bean属性的内容,那么就用properties文件中的值来代替上下
通过XSD验证XML
antlove
xml schema xsd validation SchemaFactory
1. XmlValidation.java
package xml.validation;
import java.io.InputStream;
import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schem
文本流与字符集
百合不是茶
PrintWrite()的使用 字符集名字 别名获取
文本数据的输入输出;
输入;数据流,缓冲流
输出;介绍向文本打印格式化的输出PrintWrite();
package 文本流;
import java.io.FileNotFound
ibatis模糊查询sqlmap-mapping-**.xml配置
bijian1013
ibatis
正常我们写ibatis的sqlmap-mapping-*.xml文件时,传入的参数都用##标识,如下所示:
<resultMap id="personInfo" class="com.bijian.study.dto.PersonDTO">
<res
java jvm常用命令工具——jdb命令(The Java Debugger)
bijian1013
java jvm jdb
用来对core文件和正在运行的Java进程进行实时地调试,里面包含了丰富的命令帮助您进行调试,它的功能和Sun studio里面所带的dbx非常相似,但 jdb是专门用来针对Java应用程序的。
现在应该说日常的开发中很少用到JDB了,因为现在的IDE已经帮我们封装好了,如使用ECLI
【Spring框架二】Spring常用注解之Component、Repository、Service和Controller注解
bit1129
controller
在Spring常用注解第一步部分【Spring框架一】Spring常用注解之Autowired和Resource注解(http://bit1129.iteye.com/blog/2114084)中介绍了Autowired和Resource两个注解的功能,它们用于将依赖根据名称或者类型进行自动的注入,这简化了在XML中,依赖注入部分的XML的编写,但是UserDao和UserService两个bea
cxf wsdl2java生成代码super出错,构造函数不匹配
bitray
super
由于过去对于soap协议的cxf接触的不是很多,所以遇到了也是迷糊了一会.后来经过查找资料才得以解决. 初始原因一般是由于jaxws2.2规范和jdk6及以上不兼容导致的.所以要强制降为jaxws2.1进行编译生成.我们需要少量的修改:
我们原来的代码
wsdl2java com.test.xxx -client http://.....
修改后的代
动态页面正文部分中文乱码排障一例
ronin47
公司网站一部分动态页面,早先使用apache+resin的架构运行,考虑到高并发访问下的响应性能问题,在前不久逐步开始用nginx替换掉了apache。 不过随后发现了一个问题,随意进入某一有分页的网页,第一页是正常的(因为静态化过了);点“下一页”,出来的页面两边正常,中间部分的标题、关键字等也正常,唯独每个标题下的正文无法正常显示。 因为有做过系统调整,所以第一反应就是新上
java-54- 调整数组顺序使奇数位于偶数前面
bylijinnan
java
import java.util.Arrays;
import java.util.Random;
import ljn.help.Helper;
public class OddBeforeEven {
/**
* Q 54 调整数组顺序使奇数位于偶数前面
* 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半
从100PV到1亿级PV网站架构演变
cfyme
网站架构
一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。 1:积累是必不可少的
架构师不是一天练成的。
1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HTM
[宇宙时代]宇宙时代的GIS是什么?
comsci
Gis
我们都知道一个事实,在行星内部的时候,因为地理信息的坐标都是相对固定的,所以我们获取一组GIS数据之后,就可以存储到硬盘中,长久使用。。。但是,请注意,这种经验在宇宙时代是不能够被继续使用的
宇宙是一个高维时空
详解create database命令
czmmiao
database
完整命令
CREATE DATABASE mynewdb USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/m
几句不中听却不得不认可的话
datageek
1、人丑就该多读书。
2、你不快乐是因为:你可以像猪一样懒,却无法像只猪一样懒得心安理得。
3、如果你太在意别人的看法,那么你的生活将变成一件裤衩,别人放什么屁,你都得接着。
4、你的问题主要在于:读书不多而买书太多,读书太少又特爱思考,还他妈话痨。
5、与禽兽搏斗的三种结局:(1)、赢了,比禽兽还禽兽。(2)、输了,禽兽不如。(3)、平了,跟禽兽没两样。结论:选择正确的对手很重要。
6
1 14:00 PHP中的“syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM”错误
dcj3sjt126com
PHP
原文地址:http://www.kafka0102.com/2010/08/281.html
因为需要,今天晚些在本机使用PHP做些测试,PHP脚本依赖了一堆我也不清楚做什么用的库。结果一跑起来,就报出类似下面的错误:“Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/kafka/test/
xcode6 Auto layout and size classes
dcj3sjt126com
ios
官方GUI
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Introduction/Introduction.html
iOS中使用自动布局(一)
http://www.cocoachina.com/ind
通过PreparedStatement批量执行sql语句【sql语句相同,值不同】
梦见x光
sql 事务 批量执行
比如说:我有一个List需要添加到数据库中,那么我该如何通过PreparedStatement来操作呢?
public void addCustomerByCommit(Connection conn , List<Customer> customerList)
{
String sql = "inseret into customer(id
程序员必知必会----linux常用命令之十【系统相关】
hanqunfeng
Linux常用命令
一.linux快捷键
Ctrl+C : 终止当前命令
Ctrl+S : 暂停屏幕输出
Ctrl+Q : 恢复屏幕输出
Ctrl+U : 删除当前行光标前的所有字符
Ctrl+Z : 挂起当前正在执行的进程
Ctrl+L : 清除终端屏幕,相当于clear
二.终端命令
clear : 清除终端屏幕
reset : 重置视窗,当屏幕编码混乱时使用
time com
NGINX
IXHONG
nginx
pcre 编译安装 nginx
conf/vhost/test.conf
upstream admin {
server 127.0.0.1:8080;
}
server {
listen 80;
&
设计模式--工厂模式
kerryg
设计模式
工厂方式模式分为三种:
1、普通工厂模式:建立一个工厂类,对实现了同一个接口的一些类进行实例的创建。
2、多个工厂方法的模式:就是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式就是提供多个工厂方法,分别创建对象。
3、静态工厂方法模式:就是将上面的多个工厂方法模式里的方法置为静态,
Spring InitializingBean/init-method和DisposableBean/destroy-method
mx_xiehd
java spring bean xml
1.initializingBean/init-method
实现org.springframework.beans.factory.InitializingBean接口允许一个bean在它的所有必须属性被BeanFactory设置后,来执行初始化的工作,InitialzingBean仅仅指定了一个方法。
通常InitializingBean接口的使用是能够被避免的,(不鼓励使用,因为没有必要
解决Centos下vim粘贴内容格式混乱问题
qindongliang1922
centos vim
有时候,我们在向vim打开的一个xml,或者任意文件中,拷贝粘贴的代码时,格式莫名其毛的就混乱了,然后自己一个个再重新,把格式排列好,非常耗时,而且很不爽,那么有没有办法避免呢? 答案是肯定的,设置下缩进格式就可以了,非常简单: 在用户的根目录下 直接vi ~/.vimrc文件 然后将set pastetoggle=<F9> 写入这个文件中,保存退出,重新登录,
netty大并发请求问题
tianzhihehe
netty
多线程并发使用同一个channel
java.nio.BufferOverflowException: null
at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:183) ~[na:1.7.0_60-ea]
at java.nio.ByteBuffer.put(ByteBuffer.java:832) ~[na:1.7.0_60-ea]
Hadoop NameNode单点问题解决方案之一 AvatarNode
wyz2009107220
NameNode
我们遇到的情况
Hadoop NameNode存在单点问题。这个问题会影响分布式平台24*7运行。先说说我们的情况吧。
我们的团队负责管理一个1200节点的集群(总大小12PB),目前是运行版本为Hadoop 0.20,transaction logs写入一个共享的NFS filer(注:NetApp NFS Filer)。
经常遇到需要中断服务的问题是给hadoop打补丁。 DataNod