数据库
文章平均质量分 67
唐宋xy
这个作者很懒,什么都没留下…
展开
-
Mysql如何执行GroupBy与Union
Mysql在进行分组或者子查询的过程中一般会使用到内部临时表的机制来帮助完成数据的统计,而group by与union在这个过程中,也可能会使用到内部临时表来完成数据的统计Group By的执行流程分组字段无索引执行语句select id%10 as m, count(*) as c from t1 group by m;这个简单的分组语句是将id%10分组进 行统计,并统计每个计算之后的数据的数量,并且会按照m的结果排序后输出。通过explain可以看到:using temporar原创 2021-06-15 23:47:57 · 1496 阅读 · 2 评论 -
Mysql如何Join一条语句
为什么在执行Join语句时,常说需要小表驱动大表去查询,小表驱动大表就可以查询的更快呢?在了解这个机制之前,先了解一下Mysql是如何执行一条Join语句,那么自然也就知道了为什么Mysql建议小表驱动大表的方式去进行查询,可以有效的提升查询效率Simple Nested-Loop Join简单join查询,Mysql并没用使用这种查询方式,因为这种查询方式会产生笛卡尔积,导致在表关联的查询过程中,扫描大量的行数,导致查询效率非常慢。SLJ的执行过程select * from t1 str.原创 2021-05-23 00:20:26 · 808 阅读 · 1 评论 -
Mysql数据库创建用户、数据备份操作
记录Mysql创建用户、赋权、修改密码、数据备份、恢复等操作语句创建账户&赋权use mysq;grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';Example:(1) grant select,insert on jd.* to 'guest'@'localhost' identified by '123456'如果访问的主机是任意,则使用’%’, 或者可以指定为固定的ip(2) 如果需要授权所有grant a.原创 2021-03-28 23:14:11 · 498 阅读 · 0 评论 -
Mysql的日志操作命令
基本操作命令展示表的索引show index from [table]mysqlimport/sourcemysqlimport是客户端导入数据的指令,用来倒入mysqldump加-T参数后导出的文本文件语法:mysqlimport [options] db_name textfile [textfile2...]如果需要导入sql文件,使用source命令source /xxx/xxx.sqlMysql日志错误日志错误日志默认开启,默认存放的日志位置:var/lib原创 2021-02-21 21:48:57 · 374 阅读 · 0 评论 -
MongoDB索引
MongoDB作为非关系型数据库,也有索引来帮助增加查询效率,高效的执行查询,否则就会执行全集合扫描,效率较低。MongoDB索引的优点:保存特定的字段值,支持相等匹配或者范围查询的操作排序查询时支持直接使用索引的排序结果Mysql使用的B+Tree,MongoDB使用的索引数据结构为B-Tree索引的类型单字段索引在单个字段上创建的索引称为单字段索引,对单字段的索引的排序顺序并不重要,可以从任意方向开始排序复合索引多个字段联合定义的索引,称为复合索引,复合索.原创 2020-11-08 21:01:53 · 182 阅读 · 0 评论 -
MongoDB基本操作
MongoDB作为非关系型数据库(文档数据库),用来保存大量的非关键性数据到MongoDB中,在使用上和关系型数据库基本类似,存储格式上有所差别创建数据库创建数据库:use [database]show dbs 或 show databases 查看当前的所有的数据库如果是刚创建的库则不能显示,因为刚创建的数据库还保存在内存中,没有持久化到磁盘,所以无法显示,只有在创建的数据库中创建了集合或者文档才持久化到磁盘中删除数据库:db.dropDatabase()创.原创 2020-11-08 18:45:26 · 183 阅读 · 0 评论 -
Mysql中如何高效的修改列
一般而言,大部分的ALTER TABLE都会导致阻塞、锁表重建表等例如:修改列的默认值:ALTER TABLE xxx MODIFY COLUMN [column_name] tinyint(3) not null default 5;MODIFY COLUMN就会锁表并重建表,如果表数据量大会那么相当慢,所有的MODIFY COLUMN都会重建表如果查询请求过多,则会产生大量的阻塞使用更快的方式:ALTER TABLE xxx ALTER COLUMN yy set default原创 2020-09-14 00:00:24 · 722 阅读 · 2 评论 -
【一起学习Mysql】Mysql日志和数据导入操作
操作命令展示表的索引show index from [table]mysqlimport/sourcemysqlimport是客户端导入数据的指令,用来倒入mysqldump加-T参数后导出的文本文件语法:mysqlimport [options] db_name textfile [textfile2...]如果需要导入sql文件,使用source命令source /xxx/xxx.sqlMysql日志错误日志错误日志默认开启,默认存放的日志位置:var/lib/m原创 2020-09-07 00:13:04 · 823 阅读 · 0 评论 -
Docker中Mysql的主从配置
一般来说为了保证Mysql的高可用的高性能,会做分库分表、读写分离、Mysql集群等一些操作,如果时读写分离,那么主从配置就是读写分离的前置,需要有主从的服务,才会有主库负责写,从库负责读的优化。文章目录前言配置一、创建mysql容器二、备份主库数据到从库三、Mysql开启主从配置前言如果是新创建Mysql服务器会比较简单,直接配置即可,如果是主库中已经有数据了,那么则需要将从库中的数据和主库中保持一致才可以。(特别注意:主库和从库的版本最好保持一致,还有数据库的字符集编码、数据表的字符集编码都.原创 2020-07-12 00:31:15 · 310 阅读 · 0 评论 -
Docker配置Mysql主从配置实战
Docker中的mysql是单机配置,没有定时备份数据,万一如果docker被删除了,单机的数据丢失了,数据没有安全保障,所以利用Mysql的主从配置,提高Mysql的数据安全和高可用,并且配置Mysql的主从,后面可以利用读写分离进一步提高程序的性能和效率前言:如果是新创建Mysql服务器会比较简单,直接配置即可,如果是主库中已经有数据了,那么则需要将从库中的数据和主库中保持一直才可以(...原创 2020-01-04 18:47:42 · 285 阅读 · 0 评论 -
Mysql8.0创建用户限制指定IP可访问
因为数据库的安全的问题,不建议使用root用户用来连接数据库进行操作,所以需要创建一个新用户,并且需要指定ip,这样就会更安全,因为不是指定的ip,那么就连接不到mysql因为有多个服务器需要连接到mysql, 并且最好是使用一个账号来连接,因为账号太多不易管理,所以就需要创建一个账号,并且指定多个ip限制访问。根据一些教程根本就行不通…,最后根据自己摸索和查询资料,总结一下操作:M...原创 2019-12-07 18:21:57 · 6672 阅读 · 2 评论 -
程序或者navicat无法连接到Mysql8.0的问题
最新的mysql版本为8.0,在mysql8.0中对用户的默认密码加密规则做了修改,和以前使用的加密规则不一致,相对来说应该是更安全了,但是这就造成一个问题,在使用程序连接的时候,如果使用的mysql-driver连接驱动是5.7不是8.0的时候就会出现一系列的错误其中使用navicat或者程序连接一般连接不上报错为:java.sql.SQLException: Unable to load...原创 2019-12-07 18:07:57 · 1036 阅读 · 0 评论 -
sql中and、or的顺序一定注意!
在写sql查询数据的时候,有时候由于需求,会经常会对一个字段进行多个条件匹配,所以就会用到or关键字,但是再又需要匹配另一个字段为一个条件的时候,就需要用到and关键字。 这个时候,就要注意了,两个的顺序和优先级需要先理清楚,否则select到的结果和想象中的肯定是有差距稍不注意就会出现下面的结果:select * from A where flag =1 or flag = 2 an...原创 2019-12-07 17:51:23 · 4112 阅读 · 2 评论 -
链接Mysql数据库:java.sql.SQLException: Unknown system variable 'query_cache_size'
Mysql安装在服务器中,在java中链接,出现mysql版本问题和ssL问题服务器中安装的mysql是最新版,应该是mysql8.0但是在5.7中可以使用的一些类和数据库驱动,在mysql8.0中就不能使用,或者被丢弃了。java.sql.SQLException: Unknown system variable 'query_cache_size'这个异常的解决方法:在pom.x...原创 2019-09-02 22:40:55 · 7340 阅读 · 0 评论 -
Oracle中普通索引和函数索引
1. 创建普通索引的语法:create index <index_name> on namespace.<table_name>(<column_name>)例如:create index example_index_name on crm.user(name)说明:<index_name> 创建的索引的名称,不要超过32个字符即可,并且...原创 2019-08-11 20:07:32 · 3864 阅读 · 0 评论 -
Oracle数据库使用AES加密数据
Oracle数据库中使用加密函数对数据库中的数据进行AES加密背景: 数据库中的数据如果是包含有敏感信息,或者需要对一些数据进行加密,为了方便数据库处理或者对数据表中已存在的原有的数据进行加密,则可以使用Oralce中的AES加密函数来进行数据的加密(当然也不是只有AES,还可以使用DES、RC4、3DES等实现加密)这里就使用AES进行加密处理即可,如果程序中需要处理,可以参考上一篇AE...原创 2019-08-06 22:42:04 · 8135 阅读 · 1 评论 -
Oralce数据库转换为PostgreSql数据库中的注意问题
postgres数据库的建表语句 数据库从oracle切换到paps, 在迁移的过程中有很多问题,最后都一一解决,这里记录一下迁移过程中的坑和解决的问题:postgres数据库对于oracle的语法基本都是兼容的 虽然代码中使用了spring-data-jpa,但是还是有很多都是原生sql去查询、更新等,所以就会用到...原创 2019-07-09 23:08:48 · 700 阅读 · 0 评论 -
Oracle中插入timestamp类型的值
在oracle数据库中,时间一般会设置为Date 、timestamp 或者是varchar2类型,对于varchar2和date类型,一般都很好处理,varchar2类型,就直接通过字符串进行赋值即可,date类型可以使用 sysdate 插入当前时间,或者to_date(sysdate,'yyyymmdd') 来格式化插入,也比较方便,但是这个timestamp就不是很好处理,下面就可以通...原创 2019-06-03 23:49:31 · 26753 阅读 · 2 评论 -
数据库中删除重复数据并保留一条。
删除数据,并保留一条,保留的是伪列rowid最小的一条数据,如果有其他的需求,可以稍微自己改一改就可以保留自己要想的数据 。delete from table_name awhere a.name in(select name from table_name group by name having count(*) > 1)and rowid not in(select mi...原创 2019-04-16 17:29:35 · 6239 阅读 · 0 评论