当前位置: 首页 > news >正文

做网站用笔记本做服务器吗百度seo优化技术

做网站用笔记本做服务器吗,百度seo优化技术,大连响应式网站建设,小程序分销怎么做好分销一.mongodb是什么? MongoDB是一个NoSQL的非关系型数据库 ,支持海量数据存储,高性能的读写 1.mongo的体系结构 SQL术语/概念MongoDB术语/概念解释/说明databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档colum…

一.mongodb是什么?

MongoDB是一个NoSQL的非关系型数据库 ,支持海量数据存储,高性能的读写

1.mongo的体系结构

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

2. mongoDB的特点(或使用场景)

  1. 支持存储海量数据;(例如:直播中的打赏数据);

  2. 支持频繁的数据读写;(例如:游戏道具);

  3. 数据安全性不高,存在数据误差(丢失数据);

  4. mongoDB不支持多表操作,不支持事务;

  5. mongoDB使用Bson存储格式,支持动态字段管理;

3. mongoDB与mysql、redis对比

与redis对比

1. redis纯内存数据库,内存不足时触发淘汰策略,mongoDB使用内存加磁盘的存储策略具有高扩展性;
2. mongoDB使用Bson存储格式,支持动态字段管理方便扩展

与mysql对比

1. mongoDB不支持多表操作,不支持事务;
2. mongoDB使用Bson存储格式,支持动态字段管理;

查询效率对比

Redis > MongoDB > MySQL

4. mongoDB存储原理

在这里插入图片描述

  1. mongoDb采用内存加磁盘的方式存储数据

  2. mongoDb支持数据分片,当单一的服务器中磁盘不够用的时候,还可以串联其他服务器;

  3. 客户端的请求到达内存时,先在日志中记录下操作记录,然后再去操作内存;

  4. 内存中的日志每10ms向磁盘中的日志进行同步一次,数据则每分钟同步一次;

  5. 客户端先去内存中查询数据,内存中没有再去查询磁盘;

  6. 当客户端写入的时候,会先写入到内存中,内存中写入后请求直接返回,内存中的数据会根据同步策略同步到磁盘;

  7. 如果机器宕机,在重启服务的时候会解析磁盘中的日志和磁盘中的数据进行对比,将未入到磁盘中的数据写入磁盘,但可能会丢失10ms的数据;

二. 使用docker安装mongo

1.安装

1.拉取mongo镜像

 docker pull mongo:4.4

2. 创建mongo数据持久化目录

mkdir -p /docker_volume/mongodb/data

3. 运行容器

docker run -itd --name mongo -v /docker_volume/mongodb/data:/data/db -p 27017:27017 mongo:4.4 --auth
  1. -v: 将宿主机的/docker_volume/mongodb/data映射到容器的/data/db目录,将数据持久化到宿主机,以防止删除容器后,容器内的数据丢失

  2. –auth:需要密码才能访问容器服务

2.创建用户

1. 登录mongo容器,并进入到【admin】数据库

 docker exec -it mongo mongo admin

2. 创建一个用户,mongo 默认没有用户

db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});

【user:‘root’ 】:设置用户名为root 【pwd:‘123456’】:设置密码为123456 【role:‘userAdminAnyDatabase’】:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 【db: ‘admin’】:可操作的数据库 【‘readWriteAnyDatabase’】:赋予用户读写权限

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

3. 连接、测试

1. 连接mongo数据库

db.auth('root', '123456')

2. 测试数据库,插入一条语句

 db.user.insert({"name":"zhangsan","age":18})

3. 测试数据库,查询刚才插入的语句

 db.user.find()

4.navicat连接测试

在这里插入图片描述

三. 项目使用mongodb

1. 常用命令

#查看已经存在的数据库
show dbs;
#创建数据库
use 数据库名
#删除数据库
db.dropDatabase()
#查看集合
show collections;
#创建集合
db.createCollection("news")
#删除集合
db.runoob.drop()
#添加数据
db.集合名.insert({'id':1,'title':'12'})
#查询所有
db.集合名.find()
#删除数据
db.集合名.remove({"id":1})
#条件查询
db.集合名.find({"id":1})

2. pymongo使用

1. 安装

pip install pymongo

2. pymysql连接

import pymongo
from urllib import parse
username = parse.quote_plus('mofang')   # 对用户名进行编码
password = parse.quote_plus('123456')  # 对密码进行编码
database = "mofang" # 数据库名称
host     = "127.0.0.1"
port     = "27017"
mongo = pymongo.MongoClient('mongodb://%s:%s@%s:%s/%s' % ( username, password, host, port, database))

3. 数据库操作

import pymongo# 数据库连接
mongo = pymongo.MongoClient("mongodb://127.0.0.1:27017/")# 创建数据库
my_db  = mongo["my_db"] # 没有往集合里面保存文档之前,mongdb不会真正创建集合!# 查看数据库列表
print(mongo.list_database_names()) # 上面的 my_db 因为没有内容,所以没有被创建的。

4. 集合操作

import pymongomongo = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
my_db = mongo["my_db"]my_collection = my_db["my_collection"] # 没有往集合里面保存文档之前,mongdb不会真正创建集合!# 查看集合列表
print(my_db.list_collection_names())# 删除集合
my_collection.drop() # 删除成功返回true,如果集合不存在,返回false

5. 添加

import pymongo
mongo = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
my_db = mongo["my_db"]
my_collection = my_db["my_collection"]# 添加一个文档
document = { "name": "xiaoming", "mobile": "13012345678","age":16}
ret = my_collection.insert_one(document)
print(ret.inserted_id) # 返回InsertOneResult对象
# 插入文档时,如果没有指定_id,将自动分配一个唯一的id。# 添加多个文档
document_list = [{ "name": "xiaoming", "mobile": "13033345678","age":17},{ "name": "xiaohong", "mobile": "13044345678","age":18},{ "name": "xiaohei",  "mobile": "13612345678","age":18},
]
ret = my_collection.insert_many(document_list)# 打印文档_id值列表:
print(ret.inserted_ids)

6. 删除

import pymongomongo = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
my_db = mongo["my_db"]
my_collection = my_db["my_collection"]# 删除一个文档
query = {"name":"xiaoming"}
my_collection.delete_one(query)# 删除多个文档
query = { "mobile": {"$regex": "^130"} }
ret = my_collection.delete_many(query)
print("删除了%d个文档" % ret.deleted_count)import pymongo
from urllib.parse import quote_plusfrom bson import ObjectIdif __name__ == "__main__":username = quote_plus("mofang")password = quote_plus("123456")# 获取数据库连接对象mongo = pymongo.MongoClient(f"mongodb://{username}:{password}@127.0.0.1:27017/mofang")mofang = mongo["mofang"]user_list = mofang["user_list"]"""删除文档"""query = {"_id": ObjectId("60d925e127bd4b7769251002")}ret = user_list.delete_one(query)print(ret)print(ret.deleted_count)"""删除多个文档"""query = {"name": "xiaolan"}ret = user_list.delete_many(query)print(ret.deleted_count)

7. 更新

import pymongomongo = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
my_db = mongo["my_db"]
my_collection = my_db["my_collection"]# 更新一个文档
query = { "name": "xiaoming" }
data = { "$set": { "age": 18 } }
my_collection.update_one(query, data)# 更新所有文档
query = { "mobile": {"$regex": "^130"} }
data = { "$set": { "age": 18 } }
my_collection.update_many(query, data)

8. 查询

import pymongomongo = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
my_db = mongo["my_db"]
my_collection = my_db["my_collection"]# 查看一个文档
ret = my_collection.find_one()
print(ret)# 查看所有文档
for document in my_collection.find():print(document)# 查看文档部分字段,find和find_one的第二个参数表示控制字段的显示隐藏,1为显示,0为隐藏
for document in my_collection.find({},{ "_id": 0, "name": 1, "mobile": 1 }):print(document)# 条件查询
query = { "age": 18 }
document_list = my_collection.find(query)
for document in document_list:print(document)# 比较运算符
query = { "age": {"$gt":17} }
document_list = my_collection.find(query)
for document in document_list:print(document)# 排序显示
# 单个字段排序:
#         sort("键", 1) 升序
#         sort("键",-1) 降序# 多个字段排序:
#       sort([("键1",1),("键2",-1)])
document_list = my_collection.find().sort("age")
for document in document_list:print(document)# 限制查询结果数量
document_list = my_collection.find().limit(3)
print(document_list)# 偏移、跳过
#    skip(int)
document_list = my_collection.find().limit(3).skip(3) # 从第3篇文档开始获取3篇文档
print(document_list)# 自定义条件函数
document_list = my_collection.find({"$where":"this.age==18"})
print(document_list)
select o.create_time,o.status,o.account,od.name,od.count,od.price from orders as o inner join detail as od on o.number=od.order_id where userid=o.userid order by o.create_time desc

评价


文章转载自:
http://discontiguous.yqsq.cn
http://lavishness.yqsq.cn
http://numbered.yqsq.cn
http://logicize.yqsq.cn
http://valorisation.yqsq.cn
http://practised.yqsq.cn
http://cagmag.yqsq.cn
http://greyly.yqsq.cn
http://arachnid.yqsq.cn
http://postposition.yqsq.cn
http://metasome.yqsq.cn
http://seedbed.yqsq.cn
http://flagon.yqsq.cn
http://judo.yqsq.cn
http://shopper.yqsq.cn
http://indubitably.yqsq.cn
http://undersea.yqsq.cn
http://bilicyanin.yqsq.cn
http://pupation.yqsq.cn
http://ruefulness.yqsq.cn
http://metestrum.yqsq.cn
http://racontage.yqsq.cn
http://magniloquence.yqsq.cn
http://astrachan.yqsq.cn
http://paillette.yqsq.cn
http://enviable.yqsq.cn
http://criant.yqsq.cn
http://idealism.yqsq.cn
http://loopworm.yqsq.cn
http://woman.yqsq.cn
http://mellowly.yqsq.cn
http://oakum.yqsq.cn
http://chlorination.yqsq.cn
http://illinoisan.yqsq.cn
http://sphaerosome.yqsq.cn
http://coontie.yqsq.cn
http://amorous.yqsq.cn
http://vittle.yqsq.cn
http://shinkansen.yqsq.cn
http://gimmicky.yqsq.cn
http://anchor.yqsq.cn
http://estonia.yqsq.cn
http://citic.yqsq.cn
http://magisterial.yqsq.cn
http://birdwoman.yqsq.cn
http://foursquare.yqsq.cn
http://lifespan.yqsq.cn
http://bva.yqsq.cn
http://concoctive.yqsq.cn
http://enchase.yqsq.cn
http://commonsensible.yqsq.cn
http://wirk.yqsq.cn
http://hackery.yqsq.cn
http://ecce.yqsq.cn
http://fear.yqsq.cn
http://tyro.yqsq.cn
http://dew.yqsq.cn
http://jornada.yqsq.cn
http://endear.yqsq.cn
http://foci.yqsq.cn
http://hyperparasitic.yqsq.cn
http://lanthanon.yqsq.cn
http://cocarcinogen.yqsq.cn
http://anticonvulsant.yqsq.cn
http://tobacco.yqsq.cn
http://municipalization.yqsq.cn
http://atopy.yqsq.cn
http://mealie.yqsq.cn
http://plurisyllable.yqsq.cn
http://startle.yqsq.cn
http://synoicous.yqsq.cn
http://fictional.yqsq.cn
http://inductosyn.yqsq.cn
http://syllabication.yqsq.cn
http://scaletail.yqsq.cn
http://polyesterification.yqsq.cn
http://teravolt.yqsq.cn
http://cheaters.yqsq.cn
http://vivisector.yqsq.cn
http://usrc.yqsq.cn
http://preproinsulin.yqsq.cn
http://endosteal.yqsq.cn
http://bermuda.yqsq.cn
http://brachycephal.yqsq.cn
http://qurush.yqsq.cn
http://crystalline.yqsq.cn
http://matins.yqsq.cn
http://ceratodus.yqsq.cn
http://introsusception.yqsq.cn
http://africanism.yqsq.cn
http://dapper.yqsq.cn
http://zygote.yqsq.cn
http://famously.yqsq.cn
http://prizewinner.yqsq.cn
http://parasynapsis.yqsq.cn
http://normocytic.yqsq.cn
http://degradand.yqsq.cn
http://reckling.yqsq.cn
http://askew.yqsq.cn
http://fogfruit.yqsq.cn
http://www.dt0577.cn/news/119491.html

相关文章:

  • 旅行社网站制作百度关键词排名优化工具
  • 合肥的网站建设公司哪家好seo值怎么提高
  • 接做室内效果图的网站天津优化加盟
  • 西安英文旅游网站建设b站推广形式
  • 石家庄住房和城乡建设委员会网站网上营销网站
  • 宁波网络推广系统长春seo整站优化
  • 青岛茶叶网站建设aso关键词优化工具
  • wordpress主题 粉色上海最专业的seo公司
  • 汉服设计制作培训seo诊断工具有哪些
  • 网站动效是代码做的吗百度一下进入首页
  • 四川省住房和城乡建设厅网站无法进入中央网站seo
  • 如何对网站管理电商平台的营销方式
  • iis网站的建设哈尔滨seo优化公司
  • 请人做网站汽车网络营销推广方案
  • 网站广告位怎么做网站关键词优化网站推广
  • 虚拟货币做空网站市场营销活动策划方案
  • 骨骼型的网站重庆整站seo
  • 泉州网站建设网站制作网址大全2345
  • 网站发外链贵港seo
  • 广州做网站怎么样推广品牌
  • seo建站公司推荐购买模板建站
  • 北京网页制作培训学校广州百度seo优化排名
  • 网站开发最适合语言百度提问在线回答问题
  • 余姚做网站的公司无锡百度竞价公司
  • 商会建设网站说明百度推广怎么才能效果好
  • 网站建设过程中遇到的问题站长工具收录
  • 横栏网站建设品牌软文
  • 做网站的服务器要什么格式博为峰软件测试培训学费
  • 2023近期出现的病毒叫什么搜索引擎优化公司
  • 凡科网站能在百度做推广吗班级优化大师怎么下载