202203-16 关系型数据库与非关系型数据库简介 目录关系型数据库:OracleSQLServerSybaseInformixAccessDB2mysqlvfpIngersFoxPro非关系型数据库:MongoDBCassandraCouchDBHypertableRedisRiakNeo4jHadoopHBaseCouchbaseMemcacheDBREVENDBVoldemort关系型数据库与非关系型数据库的对比关系型数据库:关系型数据库的优势:保持数据的一致性(事务处理)由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)可以进行Join等复杂查询缺点:高并发... 继续阅读 >
202110-25 Java面试题冲刺第十三天--数据库(3) 目录面试题1:MySQL有哪些数据类型?追问1:char和varchar的区别是什么?1、固定长度&可变长度2、存储方式3、存储容量4、思考:既然VARCHAR长度可变,那我要不要定到最大?5、在SQL中需要注意的点追问2:varchar(50)、char(50)中50的涵义是什么?追问3:那int(10)中10的涵义呢?int(1)和int(20)有什么不同?面试题2:MySQL的内连接、左连接、右连接有什么区别?面试题3:MySQL的隐式转换问题遇到过么?说说你的理解。1、S... 继续阅读 >
202110-25 Java面试题冲刺第十二天--数据库(2) 目录面试题2:并发场景下事务会存在哪些数据问题?正经回答:深入追问:追问1:那Innodb是如何解决幻读问题的呢?面试题3:说一下MySQL中你都知道哪些锁?正经回答:深入追问:追问1:那你来谈一谈你对表锁、行锁的理解吧。追问2:那全局锁是什么时候用的呢?追问2:那你再说一下按锁级别划分的那几种锁的使用场景和理解吧?总结面试题1:先说一下什么是MySQL事务吧正经回答:简单说,事务就是一组原子性的SQL执行单元。如果数据... 继续阅读 >
202110-20 Java面试题冲刺第四天--数据库 目录面试题1:你对数据库优化有哪些了解呀?正经回答:深入追问:追问1:那你对SQL优化方面有哪些技巧呢?追问2:嗯,那你说一下为什么不建议用SELECT*呢?二、SELECT语句的一些其他优化面试题2:你对分库分表是怎么看的呀?正经回答:1、垂直分表2、水平分表3、垂直分库4、水平分库深入追问:追问1:毫无意义,我真的不想问他MySQL问题了面试题3:MySQL删除数据的方式都有哪些?正经回答:深入追问:追问1:说一下delete、trun... 继续阅读 >
202106-23 zabbix agent2 监控oracle数据库的方法 概述在zabbix5.0版本以上,新增了一个特性,那就是zabbix-agent2,这个是zabbix公司使用go语言重写的一个代理,可以完全替代原来的zabbix-agent。这个代理功能比原来的要强大的多,内置了很多个插件支持对基础资源的监控。这里我选用oracle的插件,来看看zabbix-agent2可以支持监控哪些指标。安装安装zabbix-agent2这里采用zabbix提供的官方repo,进行安装rpm-Uvhhttps://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-rele... 继续阅读 >
202106-19 Flutter数据库的使用方法 说明Flutter原生是没有支持数据库操作的,它使用SQLlit插件来使应用具有使用数据库的能力。其实就是Flutter通过插件来与原生系统沟通,来进行数据库操作。平台支持FLutter的SQLite插件支持IOS,安卓,和MacOS平台如果要对Linux/Windows/DartVM进行支持请使用sqflite_common_ffi不支持web平台数据库操作在安卓或ios的后台执行使用案例notepad_sqflite可以在iOS/Android/Windows/linux/Mac上运行的简单... 继续阅读 >
202106-07 R语言对数据库进行操作的实例详解 数据是关系数据库系统以规范化格式存储。因此,要进行统计计算,我们将需要非常先进和复杂的Sql查询。但R语言可以轻松地连接到许多关系数据库,如MySql,Oracle,Sql服务器等,并从它们获取记录作为数据框。一旦数据在R语言环境中可用,它就变成正常的R语言数据集,并且可以使用所有强大的包和函数来操作或分析。在本教程中,我们将使用MySql作为连接到R语言的参考数据库。RMySQL包R语言有一个名为“RMySQL”的内置包,它提供与... 继续阅读 >
202103-23 数据库分库分表是什么,什么情况下需要用分库分表 数据量在什么情况下需要分表?为了保证数据库的查询效率,当数据达成一定量时建议进行分表操作1、oracle当oracle单表的数据量大于2000万行时,建议进行水平分拆。2、mysql当mysql单表的数据量大于1000万行时,建议进行水平分拆。单表容量到了1000W以上基本上稍微复杂一点的SQL都需要仔细优化,这时候的SQL耗时主要集中在磁盘IO上,数据命令缓存的概率降低,总之不好搞,如果是正常的互联网项目,提前分库分表,在前期能做的先做了... 继续阅读 >
202103-17 MySQL中查看数据库安装路径的方法 我们可以通过mysql命令查看mysql的安装路径:#以下两个sql任意一个可查询select@@basedirasbasePathfromdual;showvariableslike'%basedir%';上面可以看到基础的安装路径,查看数据库data的路径怎么看,很简单,把上面的参数变量换成datadir即可:#以下查询任意一个均可select@@datadirasdataPathfromdual;showvariablesLike'%datadir%';当然上面是基于能登录到mysql窗口下查看才能操作,那么朋友会问,如果也... 继续阅读 >
202102-21 解决mybatis plus字段为null或空字符串无法保存到数据库的问题 背景项目中集成了mybatisplus,今天在做后台的一个常规的增删改查时,发现字段值为null时,这个字段不会被保存到数据库解决办法在字段上加上@TableField(strategy=FieldStrategy.IGNORED)strategy字段更新插入策略属性说明:IGNORED(0):“忽略判断”,所有字段都更新和插入NOT_NULL(1):“非NULL判断”,只更新和插入非NULL值NOT_EMPTY(2):“非空判断”,只更新和插入非NULL值且非空字符串另外一种方式可全局配置,未亲手实... 继续阅读 >
202102-21 Postgresql 数据库权限功能的使用总结 Postgresql数据库支持灵活的权限管理,可以控制一个角色(组、用户)对某张表的读、写、更新、删除等操作权限、执行某个函数的权限以及操作(使用、更新等)视图、序列的权限。PG的权限管理功能比较强大,可以细化到对一张表的各个字段,比如禁止用户访问一张表里的密码字段等,在稍后的内容中给出详细的解释。虽然在PG数据库中把用户、角色统一叫做角色,甚至创建语句都为createroleXXX,但用户和角色之间仍有一定的区别。在这里... 继续阅读 >
202102-02 Postgresql数据库之创建和修改序列的操作 创建序列(从1开始,递增幅度1,最大值无上限):createsequencefl_user_seqincrementby1minvalue1nomaxvaluestartwith1;更改序列值(方法中两个参数分别是1.序列名字,2.序列修改后值):selectsetval('fl_user_seq',88);NavicatPremium中序列位置如下图:补充:PostgreSQL序列增删改创建序列CREATESEQUENCEifnotexiststest_mergetable_id_seqINCREMENT1MINVALUE1MAXVALUE999999999START1CACHE1;//或... 继续阅读 >
202101-26 Redis和数据库 数据同步问题的解决 缓存充当数据库比如说Session这种访问非常频繁的数据,就适合采用这种方案;当然了,既然没有涉及到数据库,那么也就不会存在一致性问题;缓存充当数据库热点缓存读操作目前的读操作有个固定的套路,如下:客户端请求服务器的时候,发现如果服务器的缓存中存在,则直接取服务器的;如果缓存中不存在,则去请求数据库,并且将数据库计算出来的数据回填给缓存;返回数据给客户端;写操作各种情况会导致数据库和缓存出现不一致的情况... 继续阅读 >
202101-21 浅析postgresql 数据库 TimescaleDB 修改分区时间范围 今天遇到一个问题之前用TimescaleDB创建的超表是已7天为单位的由于7天的数据量过大影响查询效率需要把7天的分区改为一天一分区创建超表create_hypertable()1.创建普通版表CREATETABLE"超表名"("collect_time"timestamp(6)NOTNULL,"code"varchar(36)COLLATE"pg_catalog"."default"NOTNULL,"value"numeric(14,4)NOTNULL,"create_time"timestamp(6)NOTNULL);2.改为超表create_hypertable()SELECTcre... 继续阅读 >
202101-17 pgsql 如何删除仍有活动链接的数据库 删除数据库的命令:dropdatabaseifexiststestdb;但是这个命令可能会报错:类似于:database"xxx"isbeingaccessedbyotherusers.DETAIL:Thereisxothersessionusingdatabase.如:表示要删除的数据库上还有其他活动链接。解决方法:断开该数据库上所有链接。sql:selectpg_terminate_backend(pid)frompg_stat_activitywheredatname='{0}';其中:pg_terminate_backend用来终止与数据库的连接的进程id的函数。pg_s... 继续阅读 >
202101-08 PostgreSQL数据库中匿名块的写法实例 看代码吧~test=#DO$$DECLAREirecord;test$#BEGINtest$#FORiIN1..10test$#LOOPtest$#execute'selectloop_insert(1)';test$#ENDLOOP;test$#END$$;DOtest=#看匿名块的执行效果:test=#selectcount(*)fromlineitem;count-------7000(1row)test=#selectcount(*)fromlineitem;count-------17000------------->>>>匿名块插入了10000条记录.(1row)test=#补充:PostgreSql的PL/pgSQL块结构(在pgA... 继续阅读 >