HiSEN

Personal Technology Blog


  • 归档

  • 分类

  • 标签

  • 书单

  • 关于

  • 搜索
close
HiSEN

SQL优化之小细节 - 点滴记录

发表于 2017-03-09 | 分类于 sql

不知道现在是不是还很多人首先就把关联的id放在where的第一位

这里有一个简单的对比,情况相同的时候,两个sql的时间相差八倍

优:0.077s

1
2
3
4
5
6
7
8
9
SELECT ew.all_amt ,
ew.customer_id,
cf.id,
cf.cert_id,
cf.acct_type
FROM ew_quota_info ew,
cf_customer cf
WHERE cf.acct_type in(2,3)
AND ew.customer_id = cf.id

劣:0.630s

1
2
3
4
5
6
7
8
9
SELECT ew.all_amt ,
ew.customer_id,
cf.id,
cf.cert_id,
cf.acct_type
FROM ew_quota_info ew,
cf_customer cf
WHERE ew.customer_id = cf.id
AND cf.acct_type in(2,3)

上述原因:where子句从后往前执行,应该把大的过滤条件放在后面
记录时间:2017年3月9日 10:44:59


HiSEN

ubuntu重装系统 - 在ubuntu系统下重新安装

发表于 2017-03-05 | 分类于 linux

有时候在linux环境下需要重新安装一下系统

这里我就说一下今天我安装的方法。

下载好ubuntu的镜像,随便放在一个非系统盘的根目录下

改名为:ubuntu.iso

1
2
3
4
5
6
7
8
9
10
11
sudo chmod 777 /boot/grub/grub.cfg
sudo vi /boot/grub/grub.cfg
#在 export linux_gfx_mode 下面添加如下内容
menuentry "install ubuntu powered by hisen" {
search --set -f /ubuntu.iso
loopback loop /ubuntu.iso
set root=(loop)
linux /casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu.iso
initrd /casper/initrd.lz
boot
}

保存退出,重启就会进入系统。

桌面上点击那个安装的图标即可完成重装

HiSEN

Ubuntu 16 安装IDEA 并且设置快捷启动

发表于 2017-03-04 | 分类于 java

安装简单,下载官网的文件(with java的比较方便)

解压之后在bin目录下执行

1
sudo sh idea.sh

就会进入安装程序,接下来会跳出图形界面,跟windows差不多的步骤

没有激活码可以看之前的文章

关键的一个是我发现网上说的建立桌面快捷方式不行

就这样弄个方便的

1
2
3
4
5
6
cd ~
ln -s /idea home/bin/idea.sh idea
#接下来执行 idea & 就可以打开,如果提示权限不够
#就执行 sudo idea &
sudo idea &
#后面的 & 代表后台运行的意思,不影响控制台

HiSEN

idea jrebel 7.0 破解 - 获取JRebel激活码

发表于 2017-03-03 | 分类于 java

其实这玩意完全不要破解,直接官网注册就会给一个注册码

注册地址:https://zeroturnaround.com

注册完了之后在IDEA里面去设置,会提醒激活。

tomcat部署了项目之后,点击JR启动是可以热部署的!!!

改了java代码都不要重新启动项目,哈哈!!!

HiSEN

IDEA failed to create jvm:error code -1

发表于 2017-03-03 | 分类于 java

今天先更改了 idea64.exe.vmoptions 这个配置文件

一直么有重启,后来就安装了个插件重启一下,结果就泪崩了

一直出现这个错误
IDEA failed to create jvm:error code -1,jvm:error code -1
总以为是环境变量配置的问题,或者是文件损坏了什么

重启,重装jdk,重新配置什么都试过,不管用。

后来替换了配置文件就好了!!!

解决方案

配置文件路径:

1
2
3
\IDEA HOME\bin\idea64.exe.vmoptions
或者
\IDEA HOME\bin\idea.exe.vmoptions

默认配置文件内容如下:

32bit

1
2
3
4
5
6
7
8
9
10
11
-server
-Xms128m
-Xmx512m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

64bit

1
2
3
4
5
6
7
8
9
10
-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

by the way:

IDEA 写博客真是舒服啊~

完全不用切换来切换去的!

HiSEN

count函数效率问题 - 了解count函数

发表于 2017-03-03 | 分类于 java

count函数的作用

想要真正的理解count函数,我们就必须明白count函数的作用。

作用一:统计某一列非空(not null)值得数量,即统计某列有值得结果数,使用count(col)。

作用二:统计结果集的行数,此时不用管某列是否为null值。即使用count(*).

明白了这点,我们就应该知道MySQL的count(*)并不是想象中的那样,统计每一列的值,而是直接忽视掉所有列,直接统计行数,那么它的效率肯定是很高的。

但是有一点,当col指定了该字段为NOT NULL时实际上,MySQL会自动将count(col)转为count(*),但是这样也同样耗费了些时间,如果col没有指定为NOT NULL的话,那么效率就更低了,MySQL就必须要判断每一行的值是否为空。

所以综上所述,如果是要统计行数最好优先使用select count(*)

当统计某一列等于多少的值得时候可以使用下面两种方法:

1
2
SELECT SUM(IF(id = 23,1,0)) FROM table 
SELECT COUNT(id = 23 OR NULL) FROM table

HiSEN

利用IDEA写Hexo博客的一些技巧

发表于 2017-03-03 | 分类于 hexo

今天偶然看到有人说用idea写博客

刚开始我觉得这样会很麻烦,后来想想以前写博客也是醉了

先新建一个 _post 的快捷方式

进去,然后到博客根目录

打开Git Bash,然后执行

1
hexo n "你要写的文章题目"

然后在 _post 快捷方式打开刚刚新建的markdown文件,用markdownpad打开编辑。。。

编辑完了回到Git Bash。。。。想想就很麻烦


于是乎用IDEA打开博客根目录

1
sources -> _post -> new -> Edit File Templates

阅读全文 »
HiSEN

IDEA 貌似注解失效 - 报错:cannot resolve method xxx

发表于 2017-03-01 | 分类于 java

在java平台上lombok提供了简单的注解的形式

来帮助我们消除一些必须有但看起来很臃肿的代码

比如属性的get/set,及对象的toString等方法,特别是相对于 POJO;


出现问题

  1. 各种log方法,set方法中红色波浪线
  2. 提示:cannot resolve method xxx
  3. 虽然出现错误但是编译是可以通过的

问题原因

原来的代码用了lombok简单注解
比如maven的pom.xml文件有如下配置

1
2
3
4
5
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.8</version>
</dependency>

解决办法

安装lombok plugin


装完插件之后就舒服了,也不报错

HiSEN

IDEA Denpendencies红色波浪线报错,所有的包无法导入 - 一种解决办法

发表于 2017-02-28 | 分类于 java
1
failed to read artifact descriptor for xxx:jar

一下午那代码里面是各种报错

凡是引入的大部分都报错

原因就是maven管理的jar没有添加上依赖

最后在stackoverflow找到了良药

上面有图片,错误会详细一点,如果你的也相同,可以试一试

1
maven project -> Execute Maven Goal -> mvn -U clean install

执行以上命令之后等待完成,应该就好了

参考自stackoverflow:点击查看

HiSEN

如何学习NIO - NIO简单的例子

发表于 2017-02-27 | 分类于 java

这里参照一些例子写了个简单的CS模型

例子代码:NIO应用之简单的CS模型

可以用来简单的理解一下java nio


深入的理解可以看看下面的链接。

Java NIO 系列教程:点击查看

如何学习Java的NIO?:点击查看


1…202122…27
hisenyuan

hisenyuan

Java R & D

266 日志
33 分类
112 标签
GitHub Weibo
Links
  • 科技爱好者周刊
  • 美团技术团队
  • duanple(老师木)
  • 当然我在扯淡(王垠)
  • 段永平的博客
  • 梦殇国际
© 2016 - 2024 hisenyuan
由 Hexo 强力驱动
您是第  个访问者    |   
主题 - NexT.Mist