技术文章

技术分享 | MySQL 查询优化

爱⌒轻易说出口 提交于 2021-02-18 01:20:42
文章转载自公众号:MySQL解决方案工程师 , 作者 徐轶韬 本文中具体内容,可以关注公众号:爱可生开源社区,观看 网络研讨会的视频 。 上周徐轶韬老师在 MySQL 团队的网络研讨会上,分享了 MySQL 查询优化相关内容,以下是相关内容整理,供各位参考。 内容分为如下几个方面: 基于成本的 MySQL 查询优化。 监视、分析和查询优化的工具有哪些? 数据访问方法与如何选择索引。 如何对连接进行优化。 如何影响优化器。接下来,简明介绍一下相关内容。 1. 基于成本的 MySQL 查询优化: MySQL 的优化器将 SQL 查询作为输入,并产生一个计划来执行该查询。 例如,应该按什么顺序连接表以及应该使用哪些索引。目标是能够从众多可能的执行计划中找到最佳的执行计划。 MySQL 使用基于成本的优化器。计划的成本大致反映了查询所需的资源,其中主要因素是计算查询时将要访问的行数。在优化过程中,优化器会选择连接顺序,决定使用哪个索引等等。同时,优化器还会根据从存储引擎获取的数据的统计信息作出决定。并且还依赖于数据字典中的元数据信息。 因此,查询优化的总体思路如上图所示。 基于成本的查询优化器将为不同的操作分配成本,如表扫描和索引查找。 成本单位是从磁盘读取随机数据页的成本。所有其他成本数字都与此成本单位有关。基于这些成本,优化器将计算可供选择的计划的成本。最终它将选择成本最低的计划。

【转】javaUDP套接字通信

ⅰ亾dé卋堺 提交于 2021-02-18 01:19:53
Java UDP网络编程 - 最简单示例 转自 http://blog.csdn.net/wintys/article/details/3525643 /** *UDPServer *@author Winty wintys@gmail.com *@version 2008-12-15 */ import java.io.*; import java.net.*; class UDPServer{ public static void main(String[] args) throws IOException{ DatagramSocket server = new DatagramSocket( 5050 ); byte [] recvBuf = new byte [ 100 ]; DatagramPacket recvPacket = new DatagramPacket(recvBuf , recvBuf.length); server.receive(recvPacket); String recvStr = new String(recvPacket.getData() , 0 , recvPacket.getLength()); System.out.println( "Hello World!" + recvStr); int port = recvPacket

代码行数统计

夙愿已清 提交于 2021-02-18 01:19:10
public static void main(String[] args) { String filePath = "/Volumes/DATA/xxxxx"; File rootFile = new File(filePath); System.out.println( "计:"+countFile(rootFile, "java", true) + " 个文件,共 " +countFile(rootFile, "java", false)+" 行!"); } private static int countFile(File rootFile, String suffix, boolean countLine){ int result = 0; File[] childFiles = rootFile.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { return pathname.isDirectory() || pathname.getAbsolutePath().endsWith(suffix); } }); for (File f : childFiles) { if (f.isFile()) { int lineCount = getFileLinesCount

异常连接导致的内存泄漏排查

穿精又带淫゛_ 提交于 2021-02-18 01:18:19
背景 在生产环境中,部署在客户的程序在运行了将近两个月后发生了闪退。而且两个服务器的程序先后都出现了闪退现象。通过排查windows日志发现是OOM异常导致的闪退。本文记录了该异常事件完整的排查过程与解决方案。 在本篇文章中会涉及到以下技术知识点:使用windbg对dump文件进行内存分析、使用wireshark抓包分析、powershell脚本编写、完成端口及重叠I/O原理等。 详细流程 程序崩溃后,我们要求客户导出一个dump文件供我们分析,并提供程序相关的运行日志。同时查看了windows的相关日志确定了是由于OOM(Out Of Memory)异常导致的。 使用windbg分析dump文件 启动windbg打开dump文件 由于我们的程序是基于 .net framework 3.5 开发的,因此我们使用 SOS 的相关扩展命令进行分析。需要在windbg中导入 mscorwks .loadby sos mscorwks 想对windbg进行深入学习,可以查看《使用WinDbg》讲解的非常详细。 通过 !dumpheap -stat 对内存占用情况进行汇总统计。 ! dumpheap -stat .. . 00007ff7ffbc0d50 536240 17159680 NetMQ.Core.Utils.Proactor+Item 00007ff7ffbca7f8

Dynkin Diagrams and How they work

戏子无情 提交于 2021-02-18 01:16:49
Download Here is the document DynkinDiag(20200401).pdf Dynkin diagram, root system is a big mystery of my undergraduate life. Here I present three examples tha place they work. Warning Since my main interest is not algebraic geometry, maybe there is something wrong or unacceptable, please inform me if you have good reference. This proof and concepts are collected from Shafarevich. Contents 1. Definitions 1.1 Integral Quadratic Forms 1.2 Abstract Root systems 1.3 Dynkin Diagrams Exercises: Relative Concepts 1.4 Basis determine root system 1.5 More about Weyl groups 1.6 Classification of Dynkin

电脑开机黑屏怎么办?

☆樱花仙子☆ 提交于 2021-02-18 01:16:14
哈喽!各位小伙伴大家好呀! 最近小编的电脑出了一个问题, 就是开机黑屏, 经过一番检查, 最终确定是显卡坏了。 本期就来分享下开机黑屏怎么办。 电脑在按下电源按钮后, 就会开始硬件自检, 如果没有问题, 就会正常运行至系统启动界面。 而出现黑屏这种情况, 大部分都是硬件无法通过自检导致。 先来说下黑屏的几种表现 第一种 按了开机键后, 主机内所有风扇未运转, 所有的灯也没有亮。 第二种 按了开机键后, 主机内所有风扇都会运转, 主机灯也全亮。 等待一段时间同样无响应, 且再次按下开机键时无法关机, 只能拔电源线或者长按开机键强制关机。 第三种 按了开机键后, 所有都正常, 几秒后再次按下开机键能关机, 如不按的话, 在等待一段时间后, 甚至还能听到进入桌面的声音。 出现上述情况后, 我们来讲下应该如何处理。 当开机出现第一种情况时, 肯定是不通电, 因为风扇不转,灯也不亮。 这种情况首先检查接入的电源或电插板是否正常, 然后就是主机内的电源适配器了。 如果外部的电源都是正常的, 大概率就是电源适配器坏了。 虽然也有几率主板和CPU坏, 但是几率微乎其微。 然后来看下第二种情况, 这种开机后无响应, 且只能强制关机, 一般是内存条的自检过不去, 大多发生在比较久了没开机, 内存条和主板插槽有灰尘导致的。 解决方法就是取下内存条擦拭干净, 然后重新插到主板上, 重新开机就可以啦!

laravel 实现阿里云oss文件上传

巧了我就是萌 提交于 2021-02-18 01:14:55
1、定义路由 // 阿里云文件储存 Route::group(['prefix'=>'aliyun'], function (){ Route ::get('sign', 'AliyunController@sign' ); }); 2、编写 controller 层 /* * * 返回OSS的签名验证 * @return JSON 签名信息 */ public function sign(Request $request ) { // 初始化一下必要的请求数据 $id = 'xxx'; // AccessKeyId $key = 'xxx'; // AccessKeySecret $host = '//xxx.oss-cn-shenzhen.aliyuncs.com'; // OSS库地址 $cdn_host = "//img.xxx.com"; // 真实的访问地址 $dir = 'test/'; // 上传目录设置 $callbackUrl = url('upload/callback'); // 上传回调的地址 //上传回调的参数,callbackUrl地址,callbackBody回调接收的参数,callbackBodyType通过POST调用的回调函数,所以要设置这个头 $callback_param = array ( 'callbackUrl' =>

【js】走近小程序

半腔热情 提交于 2021-02-18 01:13:58
一、什么是小程序? 基于微信的可以为用户提供一些服务的web项目,利用微信提供的接口可以让所有开发者使用到微信的原生能力,去完成一些之前做不到或者难以做到的事情。 二、小程序开发工具以及语言? 小程序需要用到微信提供的 小程序开发工具 ,​小程序的主要开发语言是 JavaScript 。 三、小程序与普通网页开发的区别? ​网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。网页开发者可以使用到各种浏览器暴露出来的 DOM API,进行 DOM 选中和操作。而如上文所述,小程序的逻辑层和渲染层是分开的,逻辑层运行在 JSCore 中, 并没有一个完整浏览器对象,因而缺少相关的DOM API和BOM API。 这一区别导致了前端开发非常熟悉的一些库,例如 jQuery、 Zepto 等,在小程序中是无法运行的。同时 JSCore 的环境同 NodeJS 环境也是不尽相同,所以一些 NPM 的包在小程序中也是无法运行的。 四、小程序的代码构成? (1)在我们新建的小程序项目里面会有四种类型的文件。 .json 后缀的 JSON 配置文件 (静态配置信息)       .wxml 后缀的 WXML 模板文件(相当于原生html文件) .wxss 后缀的 WXSS 样式文件(相当于原生css文件)

新年Aliyun面经分享:基础+项目+源码+高阶

≡放荡痞女 提交于 2021-02-18 01:12:36
眼看着春招就来了!所以就让我想起去年秋招之路,现在跟大家分享一下我的面试路程,希望也能帮助大大家!原本秋招差不多顺利结束了,几乎阿里、百度、美团、字节、滴滴等等的大厂我都有疯狂投岗面试。虽然结果是比较圆满的,不过Aliyun倒是给我留下了深刻的印象。原因?请往下看... Aliyun一面:MySQL+Redis+JUC+Kafka+项目 Aliyun二面:项目+Java+数据库+网络+高并发+基础 Aliyun三面:项目+源码 Aliyun四面:基础+项目+缓存+锁 问的是还挺多的,个人觉得也挺广泛的(毕竟面试造火箭,工作拧螺丝),还有一些没记住(脑容量有限~哈哈哈~)。以上只是大块方向,我们一起来看看具体的问题如何吧... 【文末有相关问题的解析】 Aliyun一面:MySQL+Redis+JUC+Kafka+项目 1. MySQL (1)MySQL数据量太大怎么办,如何分库分表 (2)binlog,读写分离,主从复制 (3)MySQL里的锁了解吗 2. Redis (1)主从复制 (2)分布式锁 (3)哈希槽,一致性哈希 3. JUC (1)锁 4. Kafka (1)高性能的原因 Aliyun二面:项目+Java+数据库+网络+高并发 1. 项目 (1)为什么选Flume (2)为什么选Kafka (3)数据哪来的 (4)如何给出推荐算法 2. JAVA (1