MySQL史上最全SQL优化方案
史上最全SQL优化方案在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。
1、优化的哲学注:优化有风险,涉足需谨慎
a优化可能带来的问题?
优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统;
优化手段本来就有很大的风险,只不过你没能力意识到和预见到;
任何的技术可以解决一个问题,但必然存在带来一个问题的风险;
对于优化来说解决问题而带来的问题,控制在可接受的范围内才是有成果;
保持现状或出现更差的情况都是失败!
b优化的需求?
稳定性和业务可持续性,通常比性能更重要;
优化不可避免涉及到变更,变更就有风险;
优化使性能变好,维持和变差是等概率事件;
切记优化,应该是各部门协同,共同参与的工作,任何单一部门都不能对数据库进行优化!
所以优化工作,是由业务需要驱使的!
2、优化思路a优化什么?在数据库优化上有两个主要方面:即安全与性能。
安全->数据可持续性;
性能->数据的高性能访问。
b优化的范围有哪些?存储、主机和操作系 ...
go-fastdfs 小巧灵活的文件系统
spring-boot-go-fastdfs说明go-fastdfs是一个基于go语言开发的开源文件系统,go-fastdfs(类fastdfs)在运维管理等方面优于fastdfs,更人性化。执行程序:https://github.com/sjqzhang/go-fastdfs/releases源码:https://github.com/sjqzhang/go-fastdfs
特性
支持curl命令上传
支持浏览器上传
支持HTTP下载
支持多机自动同步
类fastdfs
高性能 (使用leveldb作为kv库)
高可靠(设计极其简单,使用成熟组件)
无中心设计
优点
无依赖(单一文件)
自动同步
失败自动修复
按天分目录方便维护
支持不同的场景
文件自动去重
支持目录自定义
支持保留原文件名
支持自动生成唯一文件名
支持浏览器上传
支持查看集群文件信息
支持集群监控邮件告警
支持token下载 token=md5(file_md5+timestamp)
运维简单,只有一个角色(不像fastdfs有三个角色Tracker Server,Storage Server,Client),配 ...
69 个经典 Spring 面试题和答案
1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。
2. 使用Spring框架的好处是什么?
轻量:Spring 是轻量的,基本的版本大约2MB
控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们
面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开
容器:Spring 包含并管理应用中对象的生命周期和配置
MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品
事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)
异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常
3. Spring由哪些模块组成?以下是 ...
Dubbo重启一年,尚能饭否?
本文来源:开源中国;嘉宾介绍:北纬,开源中国社区昵称:beiwei30,Apache Dubbo™ PPMC,阿里巴巴高级技术专家,专注于大规模分布式系统、RPC 框架和微服务领域。
Dubbo 去年宣布重启维护,到现在已经一年有余,当初重启的消息在开发者中引起了强烈的反响,很多人看好,也有人持怀疑的态度,甚至到今天,还是有不少人认为 Dubbo 早已死去,回不了魂。
质疑声中,Dubbo 将首要目标定位于重新激活社区,赢回开发者的信任。在这个过程中,Dubbo 发布了多个版本,并逐渐从一个 RPC 框架向微服务生态系统转变;团队 “把 Dubbo 打造成一个国际化与现代化项目”的探索目前来看也有所呼应,比如年初 Dubbo 入驻 Apache 软件基金会孵化器,比如它在特性中提供了更加全面的异步支持;而目前 GitHub 上的 star 数也已经有 2.4w+。
期间还有 Dubbo 3.0 的消息放出,3.0 将会是一个变革的版本,它去一切阻塞的变化甚至将影响到阿里 10 多年积累的中间件。
不难看出,目前 Dubbo 还活着。近期 Dubbo 将发布重启后的第一个里程碑版本 2 ...
Anima 是一款牛逼的数据库框架
spring-boot-anima说明Anima 是一款操作数据库的框架,它支持MySQL、SQLite、H2、Oracle、SqlServer等数据库,非常方便的对数据库进行操作。
快速入门
创建 Model
查询数据
保存数据
更新和删除
事务操作
在 Spring 框架中使用
高级用法
本例程是在spring boot的基础上集成Anima操作MySQL数据库,代码进行了简单的CRUD操作:
接口:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061/** * 自定义实现类 * @author YI * @date 2018-11-27 14:40:31 */public interface IBaiKeService { /** * 根据id查询数据 * @param id id * @return */ Baike selectById(int id ...
Java8中的Stream,一行代码,让集合操作飞起来!
简介java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。
Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合操作或者大批量的数据操作,提高了编程效率和代码可读性。
Stream的原理:将要处理的元素看做一种流,流在管道中传输,并且可以在管道的节点上处理,包括过滤筛选、去重、排序、聚合等。元素流在管道中经过中间操作的处理,最后由最终操作得到前面处理的结果。
集合有两种方式生成流:
stream() − 为集合创建串行流
parallelStream() - 为集合创建并行流
上图中是Stream类的类结构图,里面包含了大部分的中间和终止操作。
中间操作主要有以下方法(此类型方法返回的都是Stream):map (mapToInt, flatMap 等)、 filter、 distinct、 sorte ...
通过整合dubbo 和 zookeeper 到Spring Boot中实现服务治理
spring-boot-dubbo-zookeeper说明通过整合dubbo-spring-boot 和 zookeeper 到Spring Boot中实现服务治理
项目为聚合项目,通过一下几个子项目模块提供服务:
基础公共接口:spring-boot-dubbo-zookeeper-base-interface
服务提供者:spring-boot-dubbo-zookeeper-provider
服务消费者:spring-boot-dubbo-zookeeper-consumer
在application.yml中配置zookeeper的地址可以单击也可以集群。
项目启动我们可以通过打印的日志或者Dubbo Admin查看,日志打印即可查看,我展示一下Dubbo Admin的显示:
服务治理:提供者
服务治理:消费者
项目启动之后请求:
12http://localhost:9091/hello/xiaohuahttp://localhost:9091/hello/goodbye/meinv
...
Java 11 已发布,String 还能这样玩!
Java 11 增加了一系列的字符串处理方法,如以下所示。1234567891011121314151617// 判断字符串是否为空白" ".isBlank(); // true// 去除首尾空格" Javastack ".strip(); // "Javastack"// 去除尾部空格 " Javastack ".stripTrailing(); // " Javastack"// 去除首部空格 " Javastack ".stripLeading(); // "Javastack "// 复制字符串"Java".repeat(3); // "JavaJavaJava"// 行数统计"A\nB\nC".lines().count(); // 3
最有意思的是 **repeat **和 **lines * ...
使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器
使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器最近看到阿里云发布了一款名为 Alibaba Cloud Toolkit 的插件,可以帮助开发者高效开发并部署适合在云端运行的应用,瞬间击中了我的小心脏,这个对于个人开发者来说超级棒啊,终于不需要再手动 scp/ftp 上传应用到服务器了,连启动的命令都是可以自行编写的,棒棒!PS:个人开发者项目不多也不大,如果使用jenkins等工具会比较麻烦,不如直接用手扔来得直接。
什么是 Alibaba Cloud ToolkitAlibaba Cloud Toolkit (后文简称 Cloud Toolkit)是阿里云针对 IDE 平台为开发者提供的一款插件,用于帮助开发者高效开发并部署适合在云端运行的应用。您在本地完成应用程序的开发、调试和测试后,可以使用在 IED (如 Eclipse 或 IntelliJ)中安装的 Cloud Toolkit 插件,通过图形配置的方式连接到云端部署环境并将应用程序快如部署到云端。说明:目前 Cloud Toolkit 仅支持 Eclipse、Intellij 等 ...