数据库
文章平均质量分 81
工作QQ感冒的石头
这个作者很懒,什么都没留下…
展开
-
mysql 分库分表中间件dble简介
敬请期待。。。。原创 2023-02-12 23:22:11 · 323 阅读 · 0 评论 -
mysql中两个表使用On和Where的区别
left join时,不管on条件是否成了,左表的所有行数据都会select出来(不管右表条件是否成立),右表成立就select对应数据,不成立就置null。On book.stuid =student.stuid ,中间表如下:而关键字on就是在生成这个中间表的时候用的连接条件。②比如两个表进行left join连接查询结果,where会对查询的结果进行过滤, on会返回驱动表的所有数据。①当两张表是在left join来关联时,条件跟在on后面:无论on条件是否成立,都会返回左表的值;原创 2022-12-01 01:42:55 · 1016 阅读 · 0 评论 -
前后端开发规范
源码(java/vue)、开发工具、jdk、mysql、redis、rabbitmq、nacos等存放路径禁止包含中文、空格、特殊字符等。5、删除的方法用remove/delete做前缀 ---->deleteUser。4、插入的方法用save/insert做前缀 ---->insertUser。6、修改的方法用update做前缀 ---->updateUser。3、获取统计值用count做后缀 ----->userCount。1、获取单个对象用 get做前缀 ---->getUser。原创 2022-10-10 10:37:19 · 676 阅读 · 0 评论 -
linux centos8 使用docker 安装多个mysql
前提条件:安装docker1、安装mysqldocker run -p 3306:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -d mysql指令参数说明:run:启动docker。-p 3306:3306:设置操作系统与docker的端口对接,第一个3306是操作系统的端口,用于对外使用;第二个是docker运行MySQL的服务端口3306。–name mysql8.0:是启动这个docker的容器名字,可以自行命名。-e MYSQL_R原创 2022-06-20 11:13:30 · 641 阅读 · 0 评论 -
mysql的那些事
1、mysql 5.7和mysql 8.0版本两个版本有啥区别(1)、NoSql存储Mysql从5.7 版本提供了NoSQL的存储功能,在8.0中这部分得到一些修改,不过这个在实际中用的极少(2)、隐藏索引隐藏索引的特性对于性能调试非常有用,在8.0 中,索引可以被隐藏和显示,当一个索引隐藏时,他不会被查询优化器所使用也就是说可以隐藏一个索引,然后观察对数据库的影响.如果性能下降,就说明这个索引是有效的,于是将其”恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多于的,可以删掉了.原创 2022-01-13 19:13:57 · 577 阅读 · 0 评论 -
高并发下常见问题以及解决方案
高并发下常见问题1、高并发下mysql出现锁等待情况(Waiting for table metadata lock)使用命令查询:SHOW PROCESSLIST;常用原因:长事物运行,阻塞DDL,继而阻塞所有同表的后续操作(比如一个事务执行了11s还没执行完成)。解决方法:1、避免长事务,将长事务分解成多个小事务,可以使用消息队列拆分 2、设置锁超时短...原创 2020-10-04 14:23:12 · 1536 阅读 · 0 评论 -
购买阿里云mysql数据库恢复
需求:从阿里云mysql数据库恢复某些表或者从备份文件中查询某些表数据最简单直接解决方案1:恢复到一个新实例上参考地址如下:https://help.aliyun.com/document_detail/96147.html第一步:选择数据库 库/表级别恢复第二步:选择回档到新实例切记非常重要,新实例就是重新创建一个实例,跟原有的实例不想干,这里选择回档到新实例如果选择回档到原实例,那么会覆盖现有数据库的数据,如果选择恢复某个表就要选择回档到新实例,如果回档到原实例,就不会到下一步收费环节第三步:进行原创 2020-07-28 19:41:37 · 350 阅读 · 0 评论 -
linux中安装的mysql数据做恢复
大家都知道,当我们在自己搭建的linux上安装mysql,主要还是测试环境或者预发环境,当程序员误操作(错误sql)等问题会导致大量数据发生变化,且人工无法短时间内修复,那么就采用恢复某一段时间点内的mysql数据。实战操作如下:1、新建一个数据库test,并且新建一个表test01,如图所示2、到mysql备份目录下(/var/lib/mysql)cd /var/lib/mysql如图所示。在数据未修改前,这里可以看到一些binlog日志3、修改mysql数据修改后查看binlog日志,并发现binl原创 2020-07-12 00:58:05 · 282 阅读 · 0 评论 -
linux centos8 卸载mysql 8.0以上版本
mysql 通过rpm方式安装,卸载方式如下1.关闭mysqlservice mysqld stop2.查找mysql 安装情况rpm -qa|grep -i mysqlmysql-8.0.17-3.module_el8.0.0+181+899d6349.x86_64mysql-server-8.0.17-3.module_el8.0.0+181+899d6349.x86_64mysql-common-8.0.17-3.module_el8.0.0+181+899d6349.x86_64mysq原创 2020-05-18 00:11:27 · 2777 阅读 · 0 评论 -
linux centos8 安装mysql 8.0.17
1.下载rpm(/usr/local/)wgethttps://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm或者从2、在线下载mysqlyum -y localinstall mysql80-community-release-el7-11.noarch.rpm3、安装mysqlyum install ...原创 2020-03-09 16:12:48 · 4041 阅读 · 0 评论 -
redis框架底层实现
redis底层实现逻辑,如上一篇博客文章中开头就有大量阐述,地址:https://blog.csdn.net/qq_39291929/article/details/103409000接下来描述一下redis五种数据结构1、简单动态字符串(String)SDSRedis 是用 C 语言写的,但是对于Redis的字符串,却不是 C 语言中的字符串(即以空字符’\0’结尾的字符数组),它是自己构建了一种名为 简单动态字符串(simple dynamic string,SDS)的...原创 2020-02-13 23:26:25 · 214 阅读 · 0 评论 -
redis集群哨兵模式
要实现Redis的真正高可用,我们需要完成主从架构下的故障自动转移。Redis官方提供了一套Redis Sentinel机制,用于当主节点出现故障时,自动完成故障发现和故障转移。一、简介哨兵模式下,我们需要配置一些哨兵节点,这些哨兵节点构成了一个集群,监控着普通的主从节点的状态:Redis Sentinel包含了若个Sentinel节点,这样做也带来了两个好处:①对于节点的故障判断是由多个Sentinel节点共同完成,这样可以有效地防止误判;②即使个别Sentinel节点不可用,整个Sen原创 2020-02-11 21:14:46 · 311 阅读 · 0 评论 -
高并发下如何快速使用MQ实现缓冲流量,削峰填谷
为什么使用原因是?服务之间的传递常用的调用就是直接调用(RPC框架)和消息MQ推送两种,但是都有一个缺点,下游消息接收方无法控制到达自己的流量,如果调用方不限速,很有可能把下游压垮。举个例子,秒杀业务:上游发起下单操作下游完成秒杀业务逻辑(库存检查,库存冻结,余额检查,余额冻结,订单生成,余额扣减,库存扣减,生成流水,余额解冻,库存解冻等等)上游下单业务简单,每秒发起了100...原创 2020-02-04 20:34:17 · 2614 阅读 · 0 评论 -
mysql之expain执行计划详解
mysql之expain执行计划详解EXPLAIN SELECT * FROM USER WHERE NAME = '张三'expain出来的信息有12列,分别是id、select_type、table、partitions、type、possible_keys、key、key_len、ref、rows、filtered、Extra具体描述:id:选择标识符select_type:表示查询的...原创 2020-01-13 22:13:17 · 1995 阅读 · 0 评论 -
mysql之count(字段)、count(*)、count(1)区别
COUNT(字段名):返回SELECT语句检索的行中值不为NULL的数量。结果是一个BIGINT值COUNT(1):表示的是直接查询符合条件的数据库表的行数(会包含值为NULL的行数)COUNT(*):表示的是直接查询符合条件的数据库表的行数(会包含值为NULL的行数),并且是SQL92定义的标准统计行数的语法,因为是标准语法,所以MySQL数据库进行过很多优化SQL92:是数据库的一个ANSI/...原创 2020-01-13 22:12:09 · 1885 阅读 · 0 评论 -
mysql索引以及mysql存储引擎MyISAM 与 InnoDB区别
MySQL索引的分类我们根据对以列属性生成的索引大致分为两类:单列索引 :以该表的单个列,生成的索引树,就称为该表的单列索引组合索引:以该表的多个列组合,一起生成的索引树,就称为该表的组合索引单列索引和组合索引具体细的划分:主键索引(单):以该表主键生成的索引树,就称为该表的主键索引唯一索引(单):以该表唯一列生成的索引树,就称为该表的唯一索引普通索引(单):以该表的普通列(非主键,非唯一列)生...原创 2020-01-06 15:31:02 · 148 阅读 · 0 评论 -
mysql 悲观锁和乐观锁区别
1、mysql悲观锁:在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,依靠数据库提供的锁机制,每次会申请锁并加锁和解锁操作第一步:两个终端均关闭自动提交左边:右边:第二步:左边利用 select .... for update的悲观锁语法锁住记录select * from employee where id = 1 for update; 第三步:右...原创 2020-01-02 13:38:39 · 2411 阅读 · 0 评论 -
mysql死锁
1、什么是mysql死锁?官方定义如下:两个事务都持有对方需要的锁,并且在等待对方释放,并且双方都不会释放自己的锁。举例:这个就好比你有一个人质,对方有一个人质,你们俩去谈判说换人。你让对面放人,对面让你放人,最后谁都不放,一直等待。在实际应用中,一个表中有两条数据id=1和id=2,然后有两个事务T1和T2,首先T1先执行id=1的更新操作,然后要更新id=2的数据,但是更新id=2时被T2事...原创 2020-01-02 11:43:14 · 295 阅读 · 1 评论 -
MYSQL数据库的四大特征和四种隔离级别以及锁类型
事务四大隔离级别脏读解决方法:RC(read committed),并且默认就好,数据库默认状态已经解决可重复读和幻读解决方法是:间歇锁数据库默认隔离级别: mysql ---repeatable + MVCC多版本实现, oracle,sql server ---read commited四个隔离级别:https://blog.csdn.net/sinat_15805929/a...原创 2019-12-08 13:19:18 · 592 阅读 · 0 评论 -
redis持久化两种方式RDB和AOF原理以及优缺点
1、两者区别:RDB持久化:是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储,文件名是dump.rdb。提醒内容:Redis 调用forks。同时拥有父进程和子进程,子进程负责备份,父进程负责继续服务AOF持久化:每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会...原创 2019-12-07 16:39:53 · 2067 阅读 · 0 评论 -
mysql索引回表
mysql索引回表概念:(1)先通过普通索引(普通索引,唯一索引,组合索引)定位到主键值;(2)在通过聚集索引定位到行记录;这就是所谓的回表查询,先定位主键值,再定位行记录,然后根据行记录数主键id扫描索引数,查询出数据,它的性能较扫一遍索引树更低举例说明:当有一个表有四个字段,分别是id、name,age、address四个字段,将id设置为主键索引,将name和age设置为组合索引查...原创 2019-12-07 15:13:38 · 835 阅读 · 0 评论 -
redis的使用
1、redis的好处:(1)、速度快;因为数据存在内存中,类似于hashmap,而且是单线程,减少了竞争,避免多线程上下文切换造成的开销;完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中 数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的; 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗; 使用多路I/O复用模型,非阻塞IO原创 2019-12-05 17:50:08 · 1448 阅读 · 2 评论 -
mysql 优化方案以及性能优化
sql优化方案1、应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将导致引擎放弃使用索引而进行全表扫描。SQL中,不等于操作符会限制索引,引起全表扫描,即使比较的字段上有索引。2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:3、为列选择合适的数据类型,而且要避免隐式类型转换能用TINYINT...原创 2019-12-01 15:45:34 · 431 阅读 · 0 评论 -
mysql、mondodb、hbase、elasticsearch的区别
总结如下:mysql 优点:1、性能卓越服务稳定,很少出现异常宕机2、因小巧安装复杂度低和使用方面以及执行速度快3、开发入门门槛低4、适合关系型数据表维护5、有丰富的sql语句和聚合函数以及多种数据类型6、有各种索引7、适合强事务类型业务缺点:1.不适合T级别数据存储2、数据扩展困难3、不适合高并发写4、模糊查询性能差5、模式不自由适合场景:关系型数据,数据量小数据mong...原创 2019-11-26 11:59:20 · 764 阅读 · 1 评论 -
Elasticsearch学习03
目前Elasticsearch服务环境搭建好了,我们开始快速学习它第一步:利用搭建好的服务器使用postman进行学习基本语法(增删改查)以及名词解释http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html第二步:学习官网,深入理解更多语法(结合postman一起使用)https://es.xiaoleilu.com/010_Intro/0...原创 2019-11-24 15:17:39 · 99 阅读 · 0 评论 -
window 快速搭建Elasticsearch环境服务02
安装Elasticsearch-head插件Elasticsearch-head插件:一款专门针对于Elasticsearch的客户端工具,可以直观查询到数据并且可以在界面中查询1.安装从地址:https://nodejs.org/en/download/ 下载相应系统的msi,双击安装。...原创 2019-11-02 15:32:21 · 120 阅读 · 0 评论 -
window 快速搭建Elasticsearch环境服务01
window下安装ElasticsearchElasticsearch介绍:是一种流行的分布式全文搜索引擎(也是分布式数据库),基于Lucene(全文搜索框架)开发而来。Elasticsearch特点:分布式实时文件存储,每个字段皆能索引, 集群、可扩展(理论上无上限), 高度集成的服务(RESTfu...原创 2019-11-02 15:01:30 · 162 阅读 · 0 评论 -
linux redis安装
1.下载redis 请到 /usr/local/下执行一下操作wget http://download.redis.io/releases/redis-4.0.6.tar.gz2.解压文件tar xzf redis-4.0.6.tar.gz3.安装make4.新建目录(usr根目录下)mkdir redis5.移动配置文件(redis/src目录下)原创 2017-12-20 11:06:34 · 220 阅读 · 0 评论 -
mysql 数据处理
如何从一个表中的数据输入插入到另一个表中,无需存储过程第一种实例:INSERT base_store_protocol(store_id,protocol_id) SELECT id AS store_id, 1 AS 'protocol_id' FROM base_shop_store WHERE category_id = '2000'第二种实例:INSERT 表(X,Y)...原创 2017-12-14 12:01:43 · 170 阅读 · 0 评论 -
mongodb数据库基本用法
MongoDB数据库基本用法 show dbs:显示数据库列表 show collections:显示当前数据库中的集合(类似关系数据库中的表) show users:显示用户use name>:切换当前数据库,这和MS-SQL里面的意思一样db.help():显示数据库操作命令,里面有很多的命令db.foo.help原创 2017-12-30 11:55:45 · 9305 阅读 · 0 评论 -
linux下安装mysql数据库
目前该方法适合阿里云CentOs 6, 目前大多数使用CentOs 7,CentOs 7安装mysql地址:https://help.aliyun.com/document_detail/116727.html?spm=5176.11065259.1996646101.searchclickresult.7dfa76d1qWGC5z#title-swy-ezw-dfwCentOs 6安装如...原创 2017-12-18 23:06:26 · 220 阅读 · 0 评论 -
mysql主从复制
数据库的读写分离--->最终体现是主从复制为什么要读写分离?对于一个小型网站,可能单台数据库服务器就能满足需求,但是在一些大型的网站或者应用中,单台的数据库服务器可能难以支撑大的访问压力,升级服务器性能,成本又太高,必须要横向扩展。还有就是,单库的话,读、写都是操作一个数据库,数据多了之后,对数据库的读、写性能就会有很大影响。同时对于数据安全性,和系统的稳定性,也是挑战。数据库的读写...原创 2018-06-09 12:54:56 · 624 阅读 · 1 评论 -
MySQL开启慢查询日志
本方案只适应于小的项目、项目未上线或者紧急情况下可采用这种方式,一旦开启慢日志查询会增加数据库的压力,所以一般采用后台对数据操作时间写入日志文件中,每一周定时进行清除日志mysql优化方案:开启慢查询日志(查询sql执行超过一秒以上sql等等)开启慢查询日志:可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。参数说明:slow_query_...原创 2018-08-10 14:11:52 · 20788 阅读 · 0 评论 -
简单mysql查询笔记
第一个sqlSELECT tbi.`user_id` ,concat(tui.`reality_name`) '出借人姓名',concat(tui.id_number,'AB') '身份证',concat(tui.`mobile`) '手机号码',concat(tbi.`time`) '出借时间',concat(tbi.`receive_time`) '应收日期',concat(t...原创 2018-11-14 17:50:37 · 272 阅读 · 0 评论 -
mysql多个单列索引和联合索引的区别详解
索引分单列索引和组合索引: 单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;(当一个表中查询大的情况下,where条件中有多个,如果使用多个单列索引,根据mysql优化器策略,造成可能只使用一个索引,其他索引会失效,导致会全盘扫描表,具体看下面链接) 组合索引,即一个索包含多个列。(当一个表中查询大的情况下,where条件中有多个,那么可以使用组合查询...原创 2019-08-29 10:58:11 · 7750 阅读 · 8 评论 -
mysql存储过程
--根据某个省、市、区编号获取所有包含的区 (返回的是list集合)--例如: 1.如果输入的编号是浙江省,那么该存储过程会把浙江省所有的区的编号查询出来 2.如果输入的编号是杭州市,那么该存储过程会把杭州市所有的区查询出来 3.如果输入的编号是下城区,那么该存储过程只会返回该区的编号,就是本身自己 4。如果收入的编号不存在,那么不返回任何数据DELIMITER $$US原创 2017-12-10 14:36:45 · 237 阅读 · 0 评论