数据库总结和案例
文章平均质量分 76
数据库总结和案例
数据知道
IT技术博主,博主会持续更新专栏文章,欢迎关注和订阅文章博客,欢迎私信和博主交流技术。如有需要请站内私信或者联系VX名片(ID:data_know)
展开
-
MySQL如何排查和删除重复数据
MySQL多字段去重复实际上是单字段去重复的衍生,原理就是把多字段数据通过子查询合并为单字段的数据表,再通过单字段数据group by进行汇总,用 having把 count(字段) > 1的数据都显示出来,最后把查找到的重复数据用min方法或者max方法获取最小id或者最大id来选择删除。原创 2024-05-15 15:45:31 · 5881 阅读 · 0 评论 -
linux安装单机版redis详细步骤,及python连接redis案例
yum安装版本固定,不能达到我们的需求。原创 2024-02-12 19:58:56 · 9027 阅读 · 0 评论 -
常见SQL错误用法案例和总结
1、数据库编译器产生执行计划,决定着SQL的实际执行方式。但是编译器只是尽力服务,所有数据库的编译器都不是尽善尽美的。上述提到的多数场景,在其它数据库中也存在性能问题。了解数据库编译器的特性,才能避规其短处,写出高性能的SQL语句。2、程序员在设计数据模型以及编写SQL语句时,要把算法的思想或意识带进来。3、编写复杂SQL语句要养成使用WITH语句的习惯。简洁且思路清晰的SQL语句也能减小数据库的负担^-^。原创 2023-10-08 17:08:40 · 9397 阅读 · 0 评论 -
mongodb并发和锁的问题总结
MongoDB 允许多个客户端读写相同的数据。为了确保一致性,MongoDB 使用锁定和并发控制来防止客户端同时修改相同的数据。对单个文档的写入要么完整发生,要么根本不发生,并且客户端始终看到一致的数据。原创 2023-04-26 16:36:04 · 15920 阅读 · 0 评论 -
MySQL查看连接数和进程信息
2、连接线程参数(thread variabls and status)4、查看用户和当前实际登录的用户名。3、查看正在执行的连接进程信息。原创 2023-03-20 17:41:50 · 17945 阅读 · 0 评论 -
MySQL删除全局唯一索引unique
【代码】MySQL删除全局唯一索引unique。原创 2023-02-20 19:05:58 · 18027 阅读 · 0 评论 -
SQLAlchemy的同步和异步的代码对比
expunge方法,是用例释放这个实例,SQLAlchemy有个特点,当你的session会话结束以后,它会销毁你插入的这种临时数据,你再想访问这个data就访问不了了。所以我们可以释放这个数据。先说一下session.begin,这个你可以理解为一个事务操作,当采用session的begin方法后,你可以发现我们不需要调用commit方法也能把修改存入数据库。删除的话,软删除大家都是update,所以不需要多说,物理删除的话,也有两种方式:、这里开始就只讲异步的操作了。希望对大家有帮助~~~原创 2023-01-29 11:49:37 · 19211 阅读 · 1 评论 -
linux的centos系统安装MongoDB详细步骤(包括创建用户的各种操作及遇到的问题汇总)
数据存储目录(dbpath)的位置,该目录默认在/var/lib/mongo下,执行如下命令修改目录权限(-R-递归处理所有文件和文件夹)同样的方法,再解决/data/mongodb/data和/data/mongodb/run目录的问题。上面命令执行完毕后,就解决了/data/mongodb/log目录的文件权限问题。再修改日志目录的权限,该文件默认在/var/log/mongodb目录,命令如下。下载后先安装依赖,再安装Mongodb,如果遇到报错,请看下面的解决方案。是通配符),在/tmp路径下。..原创 2022-07-19 18:41:18 · 29350 阅读 · 1 评论 -
MongoDB内部的存储原理
本文介绍默认存储引擎WiredTigerWiredTiger的写操作会先写入Cache,并持久化到WAL(Write ahead log),每60s会做一次Checkpoint,将当前的数据持久化,每,产生一个新的快照。Wiredtiger连接初始化时,首先将数据恢复至最新的快照状态,然后根据Checkpoint恢复数据,以保证存储可靠性虽然遍历数据的查询是相对常见的,但是 MongoDB 认为查询单个数据记录远比遍历数据更加常见,由于 B 树的非叶结点也可以存储数据,所以 查询一条数据所需要的平均随机 I原创 2022-07-05 20:42:30 · 29991 阅读 · 1 评论 -
MongoDB命令汇总
看每个命令的详细用法,可以使用:数据库操作更详细的帮助命令:对指定数据库的集合进行操作、管理和监控:显示当前数据库服务器上的数据库:切换到指定数据库pagedb的:显示数据库中所有的集合: 或 查看数据库服务器的状态:查询指定数据库统计信息:了解 DML、DDL、DCL、DQL专业名称SQL语言共分为四大类:数据操纵语言DML,数据定义语言DDL,数据控制语言DCL,数据查询语言DQL。创建数据库 mydatabase: (只是切换,不是创建)创建集合 student试一下,max等于3或者size等原创 2022-07-05 20:33:26 · 28199 阅读 · 2 评论 -
MongoDB优化的几点原则
确认你的查询是否充分利用到了索引,用explain命令查看一下查询执行的情况,添加必要的索引,避免扫表操作。可能你的数据集非常大,但是这并不那么重要,重要的是你的热数据集有多大,你经常访问的数据有多大(包括经常访问的数据和所有索引数据)。使用MongoDB,你最好保证你的热数据在你机器的内存大小之下,保证内存能容纳所有热数据。MongoDB的数据文件是采用的预分配模式,并且在Replication里面,Master和Replica Sets的非Arbiter节点都是会预先创建足够的空文件用以存储操作日志。这原创 2022-07-05 20:31:51 · 28090 阅读 · 2 评论 -
MongoDB 遇见 spark(进行整合)
1、在存储方式上,HDFS以文件为单位,每个文件大小为 64M~128M, 而mongo则表现的更加细颗粒化;2、MongoDB支持HDFS没有的索引概念,所以在读取速度上更快;3、MongoDB更加容易进行修改数据;4、HDFS响应级别为分钟,而MongoDB响应类别为毫秒;5、可以利用MongoDB强大的 Aggregate功能进行数据筛选或预处理;6、如果使用MongoDB,就不用像传统模式那样,到Redis内存数据库计算后,再将其另存到HDFS上。MongoDB可以替换HDFS, 作为大数原创 2022-07-05 20:29:46 · 73983 阅读 · 2 评论 -
MongoDB 分片总结
是指:将数据拆分,将其分散在不同机器的过程,有时也用分区(partitioning)来表示这个概念。将数据分散在不同的机器上,不需要强大的大型计算机就能存储更多的数据,可以满足MongoDB数据量大量增长的需求。当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。注意:副本集:能解决自动故障转移,主从复制,集群。解决的问题:数据冗余备份,架构高可用;但不能解决单节点压力问题(硬件限原创 2022-07-05 20:26:45 · 28194 阅读 · 1 评论 -
MongoDB复制(副本集)总结
MongoDB副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个主节点和一个或多个从节点组成。副本集没有固定的主节点,当主节点发生故障时,整个集群会选举一个主节点为系统提供服务以保证系统的高可用。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。复制还允许您从硬件故障和服务中断中恢复数据。官网参考:MongoDB副本集保障数据的安全性数据高可用性 (24* 7 )灾难恢复无需停机维原创 2022-07-05 20:04:10 · 28379 阅读 · 1 评论 -
MongoDB的用户管理总结
要添加用户,可使用MongoDB提供的db.createUser()方法。 添加用户时,可以为用户分配角色以授予权限。注意:在数据库中创建的第一个用户应该是具有管理其他用户的权限的用户管理员。还可以更新现有用户,例如更改密码并授予或撤销角色。添加用户时,可以在特定数据库中创建用户。该数据库是用户的认证的数据库。用户可以跨不同数据库拥有权限; 即用户的权限不限于认证数据库。 通过分配给其他数据库中的用户角色,在一个数据库中创建的用户可以拥有对其他数据库的操作权限。用户名和认证数据库作为该用户的唯一标识符。 也原创 2022-07-05 19:57:30 · 28355 阅读 · 3 评论 -
MongoDB的导入导出、备份恢复总结
Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。mongoexport具体用法如下所示:参数说明:示例:导出集合articles,字段 _id,author,dave,score,views1.2 数据导入 mongoimportmongoimport具体用法如下所示:参数说明:示例:导入集合articles_import,字段 _id,author,dave,score,vi原创 2022-07-05 19:51:52 · 28479 阅读 · 1 评论 -
MongoDB聚合操作总结
MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似 SQL 语句中的 , , 。MongoDB中聚合的方法使用aggregate()。语法格式:案例:计算每个作者所写的文章数,使用aggregate()计算结果如下在上面的例子中,通过字段 by_user 字段对数据进行分组,并计算 by_user 字段相同值的总和。1、$sum 计算总和。1、$avg 计算平均值1、$min 获取集合中所有文档对应值得最小值。1、$max 获取集原创 2022-07-04 20:38:12 · 29353 阅读 · 1 评论 -
MongoDB中的索引操作总结
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。可以简单理解为“排好序的快速查找数据结构”。索引存储一原创 2022-07-03 22:20:12 · 29085 阅读 · 0 评论 -
05 MongoDB对列的各种操作总结
修改age为 31 的列的address列的名称修改为address2,只会修改一条记录。 name为张三的address列的名修改为address2,会修改所有满足条件的记录。二. 对列的增加或者删除操作更新特定字段:删除特定字段:案例1:增加列名为name的值是张三的列,只会增加一条。案例2:在集合中增加一列age, 默认为空, 该所有文档中都会增加该列:案例3:删除列名为name的值是张三的列,列名和列值都会删除,只会删除一条。案例4:删除列名为name的值是张三的列,列名和列值都会删原创 2022-06-24 18:29:27 · 29133 阅读 · 0 评论 -
04 MongoDB各种查询操作 以及聚合操作总结
语法格式: 说明: find()方法以非结构化的方式来显示所有文档, 可指定参数:案例1: 如向集合user_demo中查询名字为zhangsan的用户:案例2: 指定返回哪些键除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。AND查询语法格式: 案例1: 如向集合user_demo中查询名字为zhangsan的用户且age为20的数据:2.2 OR查询OR查询语法格式:案例2: 如向集合user_demo中查询名字为zhangsan的用户或age为20的数据:原创 2022-06-24 18:27:17 · 74472 阅读 · 1 评论 -
03 MongoDB文档的各种增加、更新、删除操作总结
注意: 在 MongoDB 中,直接插入内容会自动创建集合!语法格式: 说明: 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。案例: 如向集合user_demo中插入一条数据:1.2 使用save()方法(新版本中已废弃)语法格式: 说明: 如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.原创 2022-06-24 18:23:10 · 29485 阅读 · 0 评论 -
02 MongoDB数据类型、重要概念以及shell常用指令
: 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:: BSON 字符串都是 UTF-8 编码。: BSON 时间戳类型主要用于 MongoDB 内部使用。在大多数情况下的应用开发中,可以使用 BSON 日期类型。: 表示当前距离 Unix新纪元(1970年1月1日)的毫秒数。日期类型是有符号的, 负数表示 1970 年之前的日期。有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。文档是一组键值(key-value)对(即 BSON)。MongoDB 的文档不需要设置相同的字原创 2022-06-24 18:12:42 · 28495 阅读 · 0 评论 -
01 MongoDB的概述、应用场景、下载方式、连接方式和发展历史等
官网地址:https://www.mongodb.com/官方文档:https://docs.mongodb.com/manual/菜鸟教程: https://www.runoob.com/mongodb/mongodb-tutorial.htmlw3cschool: https://www.w3cschool.cn/mongodb/书栈网: https://www.bookstack.cn/books/piaosanlang-mongodbMongoDB 是一个可拓展、开源、表结构自由、用 C++ 语言编原创 2022-06-24 18:01:46 · 74611 阅读 · 0 评论 -
python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)
二. 查询数据案例三. 更新数据案例四. 删除数据案例五. 聚合查询案例❤️ 如果觉得有用,感谢一键三连哦 !!!❤️原创 2022-06-24 17:51:03 · 75510 阅读 · 1 评论 -
SQL: 巧妙使用CASE WHEN实现查询
案例案例:创建表并插入公司名,性别,人数,SQL如下。要求:统计不同公司,不同性别的员工人数。DROP TABLE IF EXISTS staff_situation; CREATE TABLE staff_situation( company VARCHAR(8), gender VARCHAR(8), num INT ) ENGINE = InnoDB DEFAULT CHARSET = utf8; INSERT INTO staff_situation (company,原创 2022-05-02 21:23:57 · 28570 阅读 · 0 评论 -
28个大数据的高级工具汇总
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。大数据的数据仓库技术主要包括:Hive,Hbase,Sqoop,Flume等。原创 2022-02-27 14:10:53 · 29873 阅读 · 0 评论 -
Elasticsearch的介绍 以及使用python操作es详细步骤
一. 什么是 Elasticsearch想查数据就免不了搜索,搜索就离不开搜索引擎,百度、谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据。然而对于我们自己的业务数据来说,肯定就没必要用这么复杂的技术了,如果我们想实现自己的搜索引擎,方便存储和检索,Elasticsearch 就是不二选择,它是一个全文搜索引擎,可以快速地储存、搜索和分析海量数据。Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful w原创 2020-07-22 13:45:30 · 45383 阅读 · 5 评论 -
MySQL用户管理与PostgreSQL用户管理的对比
一. MySQL用户管理【例1.1】使用root用户登录到本地mysql服务器的test库中mysql -uroot -p -hlocalhost test【例1.2】使用root用户登录到本地mysql服务器的test库中,执行一条查询语句mysql -uroot -p -hlocalhost test -e "DESC person;"【例1.3】使用CREATE USER创建一个用户,用户名是jeffrey,密码是mypass,主机名是localhostCREATE USER 'jef原创 2020-07-13 12:42:34 · 31576 阅读 · 0 评论 -
mysql报错:1366, Incorrect string value:for colum 的解决办法
1、向mysql中插入数据时,报错:1366, "Incorrect string value: '\\xE5\\x96\\x9C\\xE6\\xAC\\xA2...' for colum2. 报错原因:ubuntu刚安装完mysql,默认字符集是latin1,把字符编码修改成utf8格式就行了。3. 修复方法:在 【client】下追加:default-character-set=utf8在 【mysqld】下追加:character-set-server=utf8在 【mysql】 下原创 2020-06-09 11:15:55 · 34395 阅读 · 0 评论 -
PostgreSQL:十八. 内部结构
十八. 内部结构18.1 PostgreSQL的内部概述1、查询经过的路径建立连接分析器阶段重写系统规划器/优化器执行器阶段2、如何建立连接PostgreSQL是用一个简单的“每用户一进程”的client/server模型来实现的。在这种模式里,一个客户端进程只与一个服务器进程连接,由于不知道具体要建立多少个连接,所以不得不利用一个主进程在每次连接请求时都派生出一个新的服务器进程来,这个主进程叫做postgres,它监听着一个特定的TCP/IP端口等待进来的连接。主进程每当检测到一个原创 2020-05-21 09:41:52 · 32629 阅读 · 0 评论 -
PostgreSQL:十七. 服务器配置与数据库监控
十七. 服务器配置与数据库监控17.1 服务器配置1、服务器配置的文件在数据库集群中,有3个配置文件,分别是:postgresql.conf,pg_hba.conf和pg_ident.conf。其中postgresql.conf为服务器主要的配置文件,pg_hba.conf是客户端认证配置文件,pg_ident.conf用来配置哪些操作系统用户可以映射为数据库用户。2、连接与认证3、资源消耗服务器的运行会消耗一定的资源,通过设置服务器的参数,可以提示服务器的性能。包括内存、自由空间映射、内核资源原创 2020-05-19 20:35:03 · 32341 阅读 · 0 评论 -
PostgreSQL:十六. 高可用、负载均衡和数据复制
十六. 高可用、负载均衡和数据复制16.1 常见的数据同步解决方案共享磁盘故障转移文件系统复制事务日志基于语句的复制异步复制同步复制16.2 日志传送备用服务器1、日志传送概述使用日志传送,有以下几点好处。无需昂贵的软件或硬件即可实现冗余故障转移系统。备用服务器可以用于其它用途。而不必长期闲置。例如,当辅助数据库因处理进入的日志文件而处于不可访问状态时,可以在备用服务器上运行另一个独立数据库。一旦设置好,配置成本相对低廉并且易于维护。有非常可靠的方法用于提供数据库的冗余副本原创 2020-05-17 10:31:30 · 32920 阅读 · 0 评论 -
PostgreSQL:十五. 性能优化
十五. 性能优化优化简介:PostgreSQL优化一方面是找出系统的瓶颈,提高PostgreSQL数据库整体的性能;另一方面,需要合理的结构设计和参数调整,以提高用户操作响应的速度;同时还要尽可能的节省系统资源,以便系统可以提供更大负荷的服务。PostgreSQL数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统的反应速度。例如:通过优化文件系统,提高磁盘IO的读写速度;通过优化操作系统调度策略,提高PostgreSQL的在高负荷情况下负载能力;优化表结构、索引、查询原创 2020-05-14 18:55:12 · 37341 阅读 · 0 评论 -
PostgreSQL:十四. 数据备份与还原
十四. 数据备份与还原14.1 数据备份1、使用pgAdmin 4 备份数据库2、使用pg_dump工具备份数据库【例14.1】备份test数据库中的tb_emp表和tb_emp2表,输入语句如下:pg_dump -U postgres -t tb_emp -t tb_emp2 -f C:\abc\test_backup2 test3、使用pg_dumpall工具备份整个服务器的数据【例14.2】使用pg_dumpall备份所有的数据库,其操作和pg_dump类似,这里不再重述,输入语句如下原创 2020-05-13 13:56:38 · 33231 阅读 · 0 评论 -
PostgreSQL:十三. PostgreSQL的用户管理
十三. PostgreSQL的用户管理13.1 组角色管理【例13.1】创建一个名称为post2的角色,SQL代码如下:CREATE ROLE post2;【例13.2】查看系统中的角色,SQL代码如下:SELECT rolname FROM pg_roles;【例13.3】修改角色post1的名称为post3。SQL语句如下:ALTER ROLE post1 RENAME TO post3;【例13.4】删除角色post3。SQL语句如下:DROP ROLE post3;13.原创 2020-05-12 12:59:22 · 34197 阅读 · 0 评论 -
PostgreSQL:十二. 事务处理与并发控制
十二. 事务处理与并发控制PostgreSQL提供了多种数据完整性的保证机制,如约束、触发器、约束和锁管理等。12.1 事务管理简介事务是PostgreSQL中的基本工作单元,是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。事务的属性:原子性(Atomic):事务必须是原子工作单元;对其数据修改,要么全执行,要么全不执行。一致性(Consistent):事务在完成时,必须使所有的数据都保持一致状态。隔离性(Isolated):由并发事务所做的修改必须与任原创 2020-05-12 12:54:36 · 32379 阅读 · 0 评论 -
PostgreSQL:十一. 触发器
十一. 触发器11.1 什么是触发器和触发器函数触发器:一个触发器是一种声明,告诉数据库应该在执行特定的操作时执行特定的函数。触发器函数:是指一个没有参数并且返回trigger类型的函数。11.2 创建触发器【例11.1】创建一个触发器,使得每次该表有新数据insert时,其中的一个时间字段uptime自动变更为当前时间。首先创建一个用于测试的数据表,SQL语句如下:CREATE TABLE timedb (uid INTEGER,gid INTEGER,uptime timestamp wi原创 2020-05-10 11:10:35 · 32812 阅读 · 0 评论 -
PostgreSQL: 十. 视图
十. 视图10.1 视图概述1、视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。2、视图的作用:简单化,经常使用的查询可以被定义为视图,用户不必为以后的操作每次指定全部的条件;安全性,通过视图,用户只能查询和修改他们能见到的数据;逻辑数据独立性,视图可帮助用户屏蔽真实表结构变化带来的影响。10.2 创建视图【例10.1】在数据t上创建一个名为view_t的视图,代码如下...原创 2020-05-08 13:17:20 · 33238 阅读 · 0 评论 -
PostgreSQL: 九. 索引
九. 索引9.1 索引简介1、索引概念:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以提高数据库中特定数据的查询速度。2、索引的分类:B-tree索引:比较常用,适合处理能够按顺序存储的数据,可以使用create index创建;Hash索引:只能处理简单的等于比较;GiST索引:不是单独的一种索引类型,而是一种架构,可以在这种架构上实现很多不同的索引策略;GIN...原创 2020-05-07 13:56:58 · 32477 阅读 · 0 评论 -
PostgreSQL:八. 查询语句
八. 查询语句首先定义数据表,CREATE TABLE fruits(f_id char(10) NOT NULL,s_id INT NOT NULL,f_name char(255) NOT NULL,f_price decimal(8,2) NOT NULL,PRIMARY KEY(f_id) );为了演示如何使用S...原创 2020-04-30 18:26:46 · 39486 阅读 · 2 评论