大家好,又见面了,我是你们的朋友全栈君。...sql) Redis,MongDB 非关系型数据库,对象存储,通过对象的自身的属性来决定 DBMS-数据库管理系统 数据库的管理软件——用于管理数据,维护,获取 MySql本质是一个数据库管理系统...,是最好的关系型数据库管理系统(RDBMS)应用软件之一 MySQL 关系型数据库管理系统,开源,把数据保存在不同的表中而不是将所有数据放在一个大仓库内,使用SQL语言 适用于中小型网站,或大型网站——...,内容如下 [mysqld] basedir=D:\cs_AI\mysql-8.0.27\ datadir=D:\cs_AI\mysql-8.0.27\data\ port=33061 skip-grant-tables...user=mysql 启动mysql——net start mysql 通过命令行进入mysql——mysql -u root -p (-u后面加用户名可以有空格,-p后面加密码,不能有空格
第一次听到RPO,我以为是专门割韭菜的IPO,加上说这话的人不断对我挤眉弄眼,以至于我手抖,怎么搜都搜不到这个技术名词。 到了最后我才弄明白,他说的是RPO,而不是IPO,是灾备场景中的名词。...RTO = Recovery Time Objective = 恢复时间目标 RPO = Recovery Point Object = 恢复点目标 其差别,一个是Time、一个是Point。...值得注意的是,任何宣称RTO=0和RPO=0的厂商,都是在吹牛皮。 单机服务 对于单机服务来说,从故障到恢复正常服务,它的间隔时间不可能是0。...比如ES会先写一份translog,MySQL会先写一份redo log,Postgres会写一份wal日志。这些日志会顺序写到磁盘上,虽然会丢失flush()之间的一小部分数据,但大多数无伤大雅。...但如果数据写入的恰好是A机房的这三个节点,数据还没有完全同步到B机房,那同步时间间隔内的数据就会丢失。
今天的话题有两层含义,第一层是说相对于我们所熟知的集中式数据库来说,分布式数据库是与之不同的。在做数据库选型的时候,我们要充分的了解其间的不同,才能做出较为科学的决策。...谈到Gaussdb,这里就多说几句,实际上Gaussdb是一种存算分离的分布式数据库,其CN是计算节点,DN是存储节点。不过Gaussdb与TiDB虽然说都是采用存算分离,但是其实现方式差异很大。...因此存算分离的分布式数据库,能够以何种粒度下推算子与优化器的功力决定了最终的性能。对于存储节点是一个独立的数据库实例的分布式数据库而言,在最初的技术实现上,肯定下推的只是子SQL。...当然随着产品的发展,这种工作是必须要做的。不过目前很多采用此类架构的分布式数据库的存储引擎采用了MySQL,对于此类数据库的核心代码的修改,如果不开源,是否违反了GPL协议,我一直百思不得其解。...分布式数据库的另外一个主要流派就是对等分布式,其代表是OceanBase。此类数据库是采用分片技术的,每个分片是一个完整的rdbms实例,具有计算引擎,并带有存储引擎,用于管理本地的数据。
在软件开发的过程中随着业务的复杂,产生缺陷是在所难免的,而发现缺陷修正缺陷的代价也会越来越大,当业务价值和缺陷共存的时候是追求0缺陷还是追求业务价值最大化成为了相当困难的抉择。...价值优先还是质量零缺陷优先谁说了算 最后做什么是PO产品负责人说了算,但是责任是团队共担的。...所以DevOps持续交付能力是构建适应变化的基础,另一方面的难度在于团队对于质量的定义,也就是用户故事中虚拟角色所需要的价值。是更多考虑游戏中的硬核玩家还是更多普通玩家呢?
夏日的美好 本文是来自一位前端人员的吐槽,笔者自己在做接口测试的时候,也会发现各类不太合理的接口定义,看看前端人员怎么说。...一个接口可以10分钟搞定,复杂的搞个一周都有可能,有时我们在项目中可能急于完成任务,而忽视了其他方面,但,我认为有些问题是可以提前避免的。 01 接口能实现功能就可以了吗?...什么是好的接口? 一个能满足需求实现的接口远远达不到“好”的标准,我相信大部分的Java工程师都可以写出满足需求实现的接口,但是并非所有人都能写出好的接口。.../模块下的,后面就不需要再出现了,应改为:dashboard/group/treeList 笔者注:这个是规范的问题,产品级的系统,还是要注意规范化编码,减少人为障碍。...问题三:路由风格要统一 接口风格不统一,有些是Rest风格的,有些不是Rest风格的 问题四:所有接口全部合成一个 上图是某项目的销售简报,从电商迁移过来的,一个页面中有多个图表,但全部用一个接口查询返回
本文是来自一位前端人员的吐槽,笔者自己在做接口测试的时候,也会发现各类不太合理的接口定义,看看前端人员怎么说。...一个接口可以10分钟搞定,复杂的搞个一周都有可能,有时我们在项目中可能急于完成任务,而忽视了其他方面,但,我认为有些问题是可以提前避免的。 01 接口能实现功能就可以了吗?...什么是好的接口? 一个能满足需求实现的接口远远达不到“好”的标准,我相信大部分的Java工程师都可以写出满足需求实现的接口,但是并非所有人都能写出好的接口。...问题三:路由风格要统一 接口风格不统一,有些是Rest风格的,有些不是Rest风格的 问题四:所有接口全部合成一个 上图是某项目的销售简报,从电商迁移过来的,一个页面中有多个图表,但全部用一个接口查询返回...往期推荐: 测试团队的一次复盘实践 接口测试断言 你写的接口脚本合理么 事务一致性测试 研发效能度量指标的陷阱思考
varint是使用一个或多个字节序列化整数的方式,他可以把一个固定字节的整数编码成变长字节。...varint编码中每一个字节的最高位都不用来存储数字的真正表示,而是表示当前字节是否还属于当前数据,1代表是,0代表不是(也就是该字节是当前数据的最后一个字节数据)。...每一个字节的低7位用于以7位为一组存储数字的二进制补码表示,最低有效数组在前,这也就表明varint编码是按照小端序来排列的。
要实现一个简易的String.raw也很简单,比如下面的myRaw,其中: strings参数是保存原始字符串的数组 values参数是保存所有替换变量的数组 function myRaw(strings...values.length) { result += values[i]; } } return result; } 对于模版字符串你好 {1}我是...{2} strings参数如下: ["你好", "我是", "", "谢谢"] values参数如下: [1, 2, 3] myRaw方法会依次从strings和values中取值拼接字符串。...身份标签 标签函数的一个有意思的应用场景是「定义身份标签」,也就是告诉编译器「接下来这段模版字符串是什么语言」。...下面是一个代码示例: function safeHtml(strings, ...values) { let result = strings[0]; for (let i = 1; i < strings.length
NOT EXISTS真的不走索引么? 查看两种SQL的执行计划! 使用NOT EXIST方式的执行计划: ? 使用LEFT JOIN方式的执行计划: ?...通过MySQL提供的Profiling方式来查看两种方式的执行过程。 使用NOT EXIST方式的执行过程: ? 使用LEFT JOIN方式的执行过程: ?...关注公众号Java技术栈回复m36获取一份MySQL研发军规。 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
连接方式 1.1 方式1 /usr/local/mysql5.7/bin/mysql -p 此方法默认采用root@localhost用户登录, ?...1.2 方式2 /usr/local/mysql5.7/bin/mysql -uroot -p -S /app/data/mysql3307/tmp/mysql.sock 1.3 方式3 /usr...注:root@localhost 和root@'127.0.0.1'是不同的用户 1.4 方式4 /usr/local/mysql5.7/bin/mysql -uroot -p -h localhost...user="root" password="123456" /** 使用mysql进行测试 */ /usr/local/mysql5.7/bin/mysql -uroot -S /app/...data/mysql3307/tmp/mysql.sock Welcome to the MySQL monitor.
mysql分布式数据库中间件对比 目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的。所以总结一个关于中间件比较的系列,希望可以对大家有帮助。...中间件与读写分离 很多人都会把中间件认为是读写分离,其实读写分离只是中间件可以提供的一种功能,最主要的功能还是在于他可以 分库分表 ,下面是一个读写分离的示意图: 分布式数据库中间件对比总结 ?...image.png 分布式数据库中间件对比总结 Cobar: 阿里巴巴B2B开发的关系型分布式系统,管理将近3000个MySQL实例。...MaxScale与MySQL Route: 这两个中间件都算是官方的吧,MaxScale是mariadb (MySQL原作者维护的一个版本)研发的,目前版本不支持分库分表。...MySQL Route是现在MySQL 官方Oracle公司发布出来的一个中间件。 这两个中间件后面也会跟进测试下,看下效果如何。
那些写程序员不是吃青春饭的文章,基本上都是这两点理由:第一见着的老程序员写代码都超级牛叉,小年轻都自愧不如,人家收入还很高;第二国外人家程序员写到退休的有的是啊。...基本上就这两点吧,这两点第一点说的是岁数大的技术大牛,第二是外国人,各位对号入座觉着自己能成为岁数大写代码很牛叉的那个还是能成为外国人呢? 编程这个工作并没有多少年的历史。...有一个公认的的结论就是,程序员一个是需要长期不断学习新知识的工种,老程序员的弱点就是在学习新知识这块,精力的确不如年轻人。...再有一些公司,有一些程序员是可以自己主动转职的,比如转实施或者转测试啊等等,代码写的没那么牛就可以想办法改成公司中的其他工种,这也是转型,有很多人就写了一两年代码就改行了,发展其实也未必比程序员差。...如果不转型的话,岁数大一些以后,就得琢磨养老问题啦,最好是找一个公司比较稳定,不经常换技术的公司,今天学安卓明天学ios的这种公司就不要待了,开了一辈子车的老司机也不习惯今天学开装载机明天学开挖掘机。
要回答这个问题,就要搞清楚这里的所谓的“做东”主要是为谁提供怎样的服务,这里: 客人(被服务的对象)是运行在MCU上的程序; 服务主要是 Libc 所许诺提供的服务; 与大家一般意义上的理解不同: 这里的主人并非是...(然而并不是,哈哈哈……) 【Semihosting是如何成为嵌入式“阑尾”的】 正如前面所说,Semihosting是一种由PC上运行的调试程序(Debugger),经由调试仿真器(Debugger...其中 BKPT 是Cortex-M 的 Break Point(软件断点)指令,而常数 0xAB 则是 Semihosting 专用暗号。...下面是Semihosting所覆盖的libc功能的主要类别: 1....Compiler 5向Arm Compiler 6迁移必经之路上的拦路虎之一就是名为BKPT 0xAB的Hardfault: 你以为你写了 int main(void) 编译器就不给main()函数传参数了么?
相信不少朋友和我一样是通过实时性操作系统(Real Time Operating System, RTOS)第一次接触到实时性概念的——我记得那还是大学时代、参加机器人竞赛的时候。...考虑一个有趣的问题:对一个实时性任务来说,实时性窗口内的时间,其价值是一样的么?换句话说,横竖处理事件消耗的时间是不变的,早点做迟点做都是做,有什么区别么?...需要强调的是,task_a()、task_b()和task_c()三个函数的策略本质上都是一样的——“一旦检测到事件立即处理,绝不迟延”!...作为一个系统开发者,我们显然是需要从全局考虑的,因此完全没有必要从单个实时性任务的自私视角来看问题,因此结论就变得更为直接:实时性窗口内越靠前的时间价值越高,从总体上来看“单纯”越快越好的策略对实时性是有害的...从结论上看简单的“越快越好”策略在实时性系统中是不允许的。
然而,随着时间的推移,业务体谅发展起来,忽然有一天,Redis 宕机,所有的流量会打到 MySQL 上,严重的话还会压垮 MySQL。...流量依然会打到 MySQL 上,咋办呢? 于是,2013 年,Redis 2.8 版本发布,迎来了数据持久化。...哨兵集群 有了主从复制就万无一失了么?答案是否定的。 因为我们通过人工介入来实现主从切换的,就必须要算上人的反应时间、操作时间,所以,在这期间你的业务应用依旧会受到影响。 如何把这个过程自动化?...Redis 集群是一种分布式数据库方案,集群通过分片(sharding)来进行数据管理(「分治思想」的一种实践)。 将数据划分为 16384 的 slots,每个节点负责一部分槽位。...是一个无中心架构,并提供复制和故障转移功能。 展望未来 Redis 受欢迎主要原因是极高的性能以及丰富、方便使用的数据结构,这些简单好用的数据结构大幅度降低开发业务复杂度。
加载安装包到你的安装目录 将下载的 MySQL 压缩包解压并移到你所要安装的路径,下面以我的安装路径D:\Program Files\mysql-8.0.13-winx64为例; 2....的安装目录 basedir=D:\Program Files\mysql-8.0.13-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:\Program Files\mysql...-8.0.13-winx64\mysql_oldboy.err pid-file=D:\Program Files\mysql-8.0.13-winx64\mysqld.pid # 定义mysql应该支持的...启动与关闭 MySQL 数据库服务 # 开启 net start mysql # 关闭 net stop mysql 7....,是不是简单,那就亲自动手试试吧; Reference [1]下载: https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-winx64.zip
大家好,我是程序员鱼皮。MySQL 是后端程序员必备的关系型数据库管理系统,有了 MySQL 之后,数据就可以像表格一样结构化地持久化存储。...而无论是使用 Docker 部署还是手动搭建 MySQL,都需要自己维护,出现任何问题都需要自己花时间去解决。如果出现一些恶意攻击、数据丢失的特殊情况,那就真的是汗流浃背了。...MySQL 集群版 前面提到,为了防止数据丢失、保证服务的可用性,我们可以搭建 MySQL 集群。 什么是 MySQL 集群呢?...最重要的是它还为我们提供了足够的备份空间,保证了足够的容错能力。 不知道大家都怎么搭建 MySQL 呢?...是像鱼皮一样直接用云服务的数据库,还是 Docker 搭建 MySQL,还是自己手动部署 MySQL?欢迎大家留言评论。
如果是 MySQL 8.0.x 到 MySQL 8.0.z 的小版本升级,可以直接升级。参数名称的变化和弃用情况,可以在 MySQL 服务启动后,错误日志中看到,更新到配置文件中即可。...所以申请一个变更窗口是最优解。 4具体的升级步骤是什么?...set global innodb_fast_shutdown = 0; # 数据刷到磁盘,关闭快速关机; shutdown; # 关闭服务之后检查 ps -ef | grep mysql 如果是从库...ln -s mysql-8.0.xx旧版本-linux-glibc2.12-x86_64 mysql_Basedir # 启动服务 6关于节点切换 变相自定义切换 (虽说节点切换是自动的)。...8总结 此方法属于 in-place upgrade,核心步骤是用新软件包替换旧软件包(basedir),适合小版本升级。
delete limit 语法如下,值得注意的是,order by 必须要和 limit 联用,否则就会被优化掉。...避免了长事务,delete 执行时 MySQL 会将所有涉及的行加写锁和 Gap 锁(间隙锁),所有 DML 语句执行相关行会被锁住,如果删除数量大,会直接影响相关业务无法使用。...针对上述第二点,前提是 sex 上加了索引,大家都知道,加锁都是基于索引的,如果 sex 字段没索引,就会扫描到主键索引上,那么就算 sex = 1 的只有一条记录,也会锁表。...---- 对于 delete limit 的使用,MySQL 大佬丁奇有一道题: 如果你要删除一个表里面的前 10000 行数据,有以下三种方法可以做到: 第一种,直接执行 delete from T...所以,在 delete 后加 limit 是个值得养成的好习惯。 好了,本文就带你了解这些,如果有相关疑问和好想法,请在下方留言,方便和小伙伴儿们一起讨论。
sum函数总是返回相同的结果。如果我们传递1和2,它将总是返回3而没有副作用。如果我们传递5和10,它将总是返回15,依此类推,这是纯函数的定义。
领取专属 10元无门槛券
手把手带您无忧上云