\ No newline at end of file
diff --git "a/20170120-MySQL\344\270\200\344\272\233\347\256\200\345\215\225\347\232\204\350\257\255\345\217\245/index.html" "b/20170120-MySQL\344\270\200\344\272\233\347\256\200\345\215\225\347\232\204\350\257\255\345\217\245/index.html"
index aa0d2e36f7..baadcc314c 100644
--- "a/20170120-MySQL\344\270\200\344\272\233\347\256\200\345\215\225\347\232\204\350\257\255\345\217\245/index.html"
+++ "b/20170120-MySQL\344\270\200\344\272\233\347\256\200\345\215\225\347\232\204\350\257\255\345\217\245/index.html"
@@ -1 +1 @@
-MySQL一些简单的语句 | HiSEN
--找出重复 SELECT a.* FROM emlog_ad a WHERE a.id IN (SELECT b.id id FROM emlog_ad b GROUP BY b.title HAVING count(b.id)>1);
--删除重复留下id最小的 SELECT a.* FROM emlog_ad a WHERE a.id IN (SELECT b.id FROM emlog_ad b GROUP BY b.title HAVING count(b.id)>1) AND a.id NOT IN (SELECT min(c.id) FROM emlog_ad c GROUP BY c.title HAVING count(c.id)>1);
--一句sql把所有AA改为BB,CC改为DD UPDATE emlog_ad a SET a.`status`=( CASE WHEN a.`status` = '1' THEN '11' WHEN a.`status`='2' THEN '22' END );
--找出重复 SELECT a.* FROM emlog_ad a WHERE a.id IN (SELECT b.id id FROM emlog_ad b GROUP BY b.title HAVING count(b.id)>1);
--删除重复留下id最小的 SELECT a.* FROM emlog_ad a WHERE a.id IN (SELECT b.id FROM emlog_ad b GROUP BY b.title HAVING count(b.id)>1) AND a.id NOT IN (SELECT min(c.id) FROM emlog_ad c GROUP BY c.title HAVING count(c.id)>1);
--一句sql把所有AA改为BB,CC改为DD UPDATE emlog_ad a SET a.`status`=( CASE WHEN a.`status` = '1' THEN '11' WHEN a.`status`='2' THEN '22' END );
\ No newline at end of file
diff --git "a/20170120-Oracle-SQL\350\257\255\345\217\245\344\274\230\345\214\226-\345\206\231\345\207\272\351\253\230\346\225\210SQL/index.html" "b/20170120-Oracle-SQL\350\257\255\345\217\245\344\274\230\345\214\226-\345\206\231\345\207\272\351\253\230\346\225\210SQL/index.html"
index 216b889275..9da2ecdd8d 100644
--- "a/20170120-Oracle-SQL\350\257\255\345\217\245\344\274\230\345\214\226-\345\206\231\345\207\272\351\253\230\346\225\210SQL/index.html"
+++ "b/20170120-Oracle-SQL\350\257\255\345\217\245\344\274\230\345\214\226-\345\206\231\345\207\272\351\253\230\346\225\210SQL/index.html"
@@ -1 +1 @@
-Oracle SQL语句优化 - 写出高效SQL | HiSEN
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率。在子查询中,NOT IN子句将执行一个内部的排序和合并。无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历).。为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS.
高效:
1 2 3 4 5
SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT 'X' FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = 'MELB')
低效:
1 2 3 4 5 6 7
SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE LOC = 'MELB')
[16]识别’低效执行’的SQL语句
虽然目前各种关于SQL优化的图形化工具层出不穷
但是写出自己的SQL工具来解决问题始终是一个最好的方法:
1 2 3 4 5 6 7 8 9 10 11
SELECT EXECUTIONS, DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT FROM V$SQLAREA WHERE EXECUTIONS>0 AND BUFFER_GETS > 0 AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 ORDER BY 4 DESC;
当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并, 然后在输出最终结果前进行排序。如果用UNION ALL替代UNION, 这样排序就不是必要了。效率就会因此得到提高。需要注意的是,UNION ALL 将重复输出两个结果集合中相同记录。因此各位还是要从业务需求分析使用UNION ALL的可行性。 UNION 将对结果集合排序,这个操作会使用到SORT_AREA_SIZE这块内存。对于这块内存的优化也是相当重要的。下面的SQL可以用来查询排序的消耗量。
低效:
1 2 3 4 5 6 7 8 9
SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = '31-DEC-95' UNION SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = '31-DEC-95'
高效:
1 2 3 4 5 6 7 8
SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = '31-DEC-95' UNION ALL SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = '31-DEC-95'
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率。在子查询中,NOT IN子句将执行一个内部的排序和合并。无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历).。为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS.
高效:
1 2 3 4 5
SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT 'X' FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = 'MELB')
低效:
1 2 3 4 5 6 7
SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE LOC = 'MELB')
[16]识别’低效执行’的SQL语句
虽然目前各种关于SQL优化的图形化工具层出不穷
但是写出自己的SQL工具来解决问题始终是一个最好的方法:
1 2 3 4 5 6 7 8 9 10 11
SELECT EXECUTIONS, DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT FROM V$SQLAREA WHERE EXECUTIONS>0 AND BUFFER_GETS > 0 AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 ORDER BY 4 DESC;
当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并, 然后在输出最终结果前进行排序。如果用UNION ALL替代UNION, 这样排序就不是必要了。效率就会因此得到提高。需要注意的是,UNION ALL 将重复输出两个结果集合中相同记录。因此各位还是要从业务需求分析使用UNION ALL的可行性。 UNION 将对结果集合排序,这个操作会使用到SORT_AREA_SIZE这块内存。对于这块内存的优化也是相当重要的。下面的SQL可以用来查询排序的消耗量。
低效:
1 2 3 4 5 6 7 8 9
SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = '31-DEC-95' UNION SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = '31-DEC-95'
高效:
1 2 3 4 5 6 7 8
SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = '31-DEC-95' UNION ALL SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = '31-DEC-95'
static { System.out.println("Astatic"); } { System.out.println("I'm A class"); } }
publicstaticclassBextendsA{ publicint a = 1;
publicvoidfun(){ System.out.println("B"); }
static { System.out.println("Bstatic"); } { System.out.println("I'm B class"); } }
publicstaticvoidmain(String[] args){ // 里面的static块方法,new了就会执行 // new new B()两个都执行,new new A()执行A的 //static代码块在{}代码块后面执行 A classA = new B(); System.out.println(classA.a); classA.fun(); // 输出信息 // Astatic // Bstatic // I'm A class // I'm B class // 1 // B
// 多态记忆口诀 // 变量多态看左边 // 方法多态看右边 // 静态多态看左边 } }
\ No newline at end of file
+Test Java Code | HiSEN
static { System.out.println("Astatic"); } { System.out.println("I'm A class"); } }
publicstaticclassBextendsA{ publicint a = 1;
publicvoidfun(){ System.out.println("B"); }
static { System.out.println("Bstatic"); } { System.out.println("I'm B class"); } }
publicstaticvoidmain(String[] args){ // 里面的static块方法,new了就会执行 // new new B()两个都执行,new new A()执行A的 //static代码块在{}代码块后面执行 A classA = new B(); System.out.println(classA.a); classA.fun(); // 输出信息 // Astatic // Bstatic // I'm A class // I'm B class // 1 // B
// 多态记忆口诀 // 变量多态看左边 // 方法多态看右边 // 静态多态看左边 } }
\ No newline at end of file
diff --git "a/20170120-hexo\345\256\211\350\243\205\350\277\207\347\250\213/index.html" "b/20170120-hexo\345\256\211\350\243\205\350\277\207\347\250\213/index.html"
index d8b82bb626..a9887370a1 100644
--- "a/20170120-hexo\345\256\211\350\243\205\350\277\207\347\250\213/index.html"
+++ "b/20170120-hexo\345\256\211\350\243\205\350\277\207\347\250\213/index.html"
@@ -1 +1 @@
-hexo安装过程 | HiSEN
开始写第一篇文章: 执行:hexo new “你的文章标题” 然后你在blog/source/_posts文件夹下面有文件,用markdownpad打开编辑 执行:
hexo g#重新生成
hexo s#本地查看效果
hexo d#上传到github
或者不预览,直接一步上传到github:hexo d -g
\ No newline at end of file
diff --git "a/20170120-\345\237\272\346\234\254\346\216\222\345\272\217\347\256\227\346\263\225\347\232\204\346\227\266\351\227\264-\347\251\272\351\227\264\345\244\215\346\235\202\345\272\246\350\241\250/index.html" "b/20170120-\345\237\272\346\234\254\346\216\222\345\272\217\347\256\227\346\263\225\347\232\204\346\227\266\351\227\264-\347\251\272\351\227\264\345\244\215\346\235\202\345\272\246\350\241\250/index.html"
index 9857523d51..dee68d8b2c 100644
--- "a/20170120-\345\237\272\346\234\254\346\216\222\345\272\217\347\256\227\346\263\225\347\232\204\346\227\266\351\227\264-\347\251\272\351\227\264\345\244\215\346\235\202\345\272\246\350\241\250/index.html"
+++ "b/20170120-\345\237\272\346\234\254\346\216\222\345\272\217\347\256\227\346\263\225\347\232\204\346\227\266\351\227\264-\347\251\272\351\227\264\345\244\215\346\235\202\345\272\246\350\241\250/index.html"
@@ -1 +1 @@
-基本排序算法的时间/空间复杂度表 | HiSEN
\ No newline at end of file
diff --git "a/20170120-\350\257\245Java\350\257\255\345\217\245\345\210\233\345\273\272\344\272\206\345\244\232\345\260\221\344\270\252\345\257\271\350\261\241\357\274\237/index.html" "b/20170120-\350\257\245Java\350\257\255\345\217\245\345\210\233\345\273\272\344\272\206\345\244\232\345\260\221\344\270\252\345\257\271\350\261\241\357\274\237/index.html"
index 51382f86eb..f2bddd2361 100644
--- "a/20170120-\350\257\245Java\350\257\255\345\217\245\345\210\233\345\273\272\344\272\206\345\244\232\345\260\221\344\270\252\345\257\271\350\261\241\357\274\237/index.html"
+++ "b/20170120-\350\257\245Java\350\257\255\345\217\245\345\210\233\345\273\272\344\272\206\345\244\232\345\260\221\344\270\252\345\257\271\350\261\241\357\274\237/index.html"
@@ -1 +1 @@
-该Java语句创建了多少个对象? | HiSEN
\ No newline at end of file
diff --git "a/20170122-linux\345\270\270\347\224\250\347\232\204\345\207\240\344\270\252\345\221\275\344\273\244/index.html" "b/20170122-linux\345\270\270\347\224\250\347\232\204\345\207\240\344\270\252\345\221\275\344\273\244/index.html"
index 34f0750df4..7df489cc4f 100644
--- "a/20170122-linux\345\270\270\347\224\250\347\232\204\345\207\240\344\270\252\345\221\275\344\273\244/index.html"
+++ "b/20170122-linux\345\270\270\347\224\250\347\232\204\345\207\240\344\270\252\345\221\275\344\273\244/index.html"
@@ -1 +1 @@
-Linux常用的几个命令 | HiSEN
#进入一个目录 root@hisenyuan:/# cd /home/wwwlog/ #进入当前目录下的www.google.com目录 root@hisenyuan:/home/wwwlog# cd ./www.google.com #进入父目录 root@hisenyuan:/home/wwwlog/www.google.com# cd ../ #进入linux系统根目录 root@hisenyuan:/home/wwwlog# cd / #根目录 root@hisenyuan:/#
#进入一个目录 root@hisenyuan:/# cd /home/wwwlog/ #进入当前目录下的www.google.com目录 root@hisenyuan:/home/wwwlog# cd ./www.google.com #进入父目录 root@hisenyuan:/home/wwwlog/www.google.com# cd ../ #进入linux系统根目录 root@hisenyuan:/home/wwwlog# cd / #根目录 root@hisenyuan:/#
\ No newline at end of file
diff --git "a/20170126-\350\256\260\345\275\225\344\270\200\346\254\241\351\235\242\350\257\225\350\277\207\347\250\213\344\270\255\344\272\244\346\265\201\347\232\204\344\270\200\344\272\233\351\242\230/index.html" "b/20170126-\350\256\260\345\275\225\344\270\200\346\254\241\351\235\242\350\257\225\350\277\207\347\250\213\344\270\255\344\272\244\346\265\201\347\232\204\344\270\200\344\272\233\351\242\230/index.html"
index beeb9c1114..adc10f34b8 100644
--- "a/20170126-\350\256\260\345\275\225\344\270\200\346\254\241\351\235\242\350\257\225\350\277\207\347\250\213\344\270\255\344\272\244\346\265\201\347\232\204\344\270\200\344\272\233\351\242\230/index.html"
+++ "b/20170126-\350\256\260\345\275\225\344\270\200\346\254\241\351\235\242\350\257\225\350\277\207\347\250\213\344\270\255\344\272\244\346\265\201\347\232\204\344\270\200\344\272\233\351\242\230/index.html"
@@ -1,4 +1,4 @@
记录一次面试过程中交流的一些题 | HiSEN