0%

上周末在跟朋友描述以前做过的一个SQL优化案例时,提到原因是SQL错选索引,而当时我提出的优化方案之一是删除索引,朋友很惊讶,说他还没遇到过通过删除索引优化SQL的案例

这周抽空回看了下之前邮件发出的方案,觉得还是值得说一下

SQL错选索引,常见的原因是统计数据不准导致,通过对表执行analyze table table_name,重新做下统计即可,但这次遇到的索引错选,却不是因为统计数据问题

阅读全文 »

Maven是一款基于插件作业的构建工具,它自身内置了非常多我们平常开发所需要的插件。如清理资源插件maven-clean-plugin,编译插件maven-compiler-plugin,打包插件maven-jar-plugin等。在工作中,我们也可以开发自己的插件,帮助我们提高开发效率

下方以开发一个统计目录下所有文件的内容行数的插件为例

阅读全文 »

目前我所在公司,申请数据库时,基本都是MySQL主从交付。这篇文章,也主要讲下MySQL主从

基础

MySQL高可用是基于binlog。对binlog的解释,可以参看下官方文档

The binary log is a set of log files that contain information about data modifications made to a MySQL server instance. The log is enabled by starting the server with the --log-bin option

默认binlog是关闭的,可以通过下方语句查询得到Value为OFF

1
show variables like 'log_bin';

要打开binlog,可以通过修改配置文件/etc/my.cnf(Unix like系统下的配置),重启MySQL

1
2
3
4
5
6
7
[mysqld]
#binlog文件的存放目录
log-bin=/usr/local/mysql/mysql-bin/mysql-bin
#binlog文件格式
binlog-format=MIXED
#server id
server-id=1
阅读全文 »

因为最近在验证binlog相关功能,所以想修改log-bin参数以启用该功能,所以需要修改配置文件。以下是踩坑之后总结出的过程

配置文件的路径

查看官方文档后,知道下述方式均可修改启动配置文件,顺序是从上往下读,后面的会覆盖前面的

File Name Purpose
/etc/my.cnf Global options
/etc/mysql/my.cnf Global options
*SYSCONFDIR*/my.cnf Global options
$MYSQL_HOME/my.cnf Server-specific options (server only)
defaults-extra-file The file specified with --defaults-extra-file, if any
~/.my.cnf User-specific options
~/.mylogin.cnf User-specific login path options (clients only)
阅读全文 »

Lock接口

1
2
3
4
5
6
7
8
9
public interface Lock {
void lock();
void lockInterruptibly() throws InterruptedException;
boolean tryLock();
boolean tryLock(long time, TimeUnit unit) throws InterruptedException;
void unlock();
Condition newCondition();
}

阅读全文 »

面试结束写面试评价

  • Coding question 写代码问题:需要写实际的代码,语言不限;
  • Design question 设计问题:系统设计、功能设计;
  • Analytical question 分析问题:算法、数据结构、问题分析、逻辑分析、等等;
  • Open ended question 无固定答案问题:主要看候选人的逻辑分析和问题解决能力;
阅读全文 »

这篇文章是2020年在CSDN发表的,因为最近要使用其中工具,所以做文章迁移

以下工具是基于JDK11.0.5版本

命令行工具

jps

Java虚拟机进程状态工具

1
2
3
4
5
6
jps [options] [hostid]
-q 显示进程ID
-m 显示进程ID、主类名、传入主方法的参数
-l 显示进程ID、全类名
-v 显示进程ID、主类名、虚拟机参数
-V 显示进程ID、主类名【默认】
阅读全文 »

题目

给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。

注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval()

阅读全文 »

这是一篇写于2017年的博客,发表在QQ空间。觉得还是有参考意义,所以再次Copy到这个博客中


为什么我要带新人?
其实我也没有搞懂这个问题。和面试一样,既不属于KPI考核,带的过程花自己不少时间精力,还有老生常谈的教出徒弟饿死师傅。完全就是一个吃力不讨好的工作。但,对于我本人来说,既然是上级安排的任务,我就不得不做。而要做,我就想把它做好。不能接受后,不愿意做,然后应付了事。被上级、其他同事、新人所鄙视,不符合我的价值观。另外,教出徒弟饿死师傅的事情,我觉得本质上还是因为师父做得不够。一代总比一代强,个人无法对抗这种趋势,并不存在师父不教徒弟,徒弟就永远不会超越师父的定律,要想不被淘汰,总归还是打铁需要自身硬

带新人的目的是什么?
公司招人的目的是为了分担老员工的任务(原有任务或者即将要新增的任务),至少在基层是这样。那带新人的目的就可以简单的说成:让新人在短时间内能够胜任岗位要求,并且持久的为公司产生效益。抽取出关键词,短时间内胜任、持久,我们暂且先谈这两点吧,怎么做到这些

阅读全文 »

本文摘自丁香妈妈《科学怀孕指南》

饮食

BMI控制在18.5~23.9之间

1
2
3
BMI计算为:
BMI = 体重/(身高*身高)
例如,身高为1.6M,体重是50KG,则BMI为19.5
  • 体重过瘦:

每天1~2次加餐。如每日增加200ML牛奶,或50G谷类,或50G肉类,或75G鸡蛋,或75G鱼类

  • 体重过胖:

多吃蔬菜,少高糖,少重油食物。减慢进食速度,每餐七八分饱。增加运动量,每日30~90分钟中等强度运动,如快走、慢跑、游泳、跳绳等

阅读全文 »