数据库
1.MySQL对组合索引中的某一个字段进行查询时,会走索引遍历吗?
根据查询字段的位置不同来决定,如有组合索引a,b,c查询a, a,b a,b,c a,c (只走a的索引) 都可以走索引的,其他条件的查询不能走索引。
组合索引 有“最左前缀”原则。就是只从最左面的开始组合,并不是所有只要含有这三列存在的字段的查询都会用到该组合索引
2.MySQL查询时区分大小写吗?
默认不区分,可以在创建表时指定binary属性,
create table some_table(
str
char
(20) binary
)也可以在查询时
可以将查询条件用binary()括起来:select
*
from
TableA
where
binary
columnA =
'aaa'
;
3.oracle中nvl()和nvl2()的区别:
nvl(X1,STR),如果X1为null,则返回STR,不为null,则返回本身的值。
nvl2(X1,X2,X3),如果X1为null,则返回X3的值,如果X1不为null,则返回X2的值
#{}为预编译处理;${}为字符串替换。
MyBatis在处理#{}时,会将sql中的#{}替换成?问号,调用PreparedStatement的set方法来赋值。
MyBatis在处理${}时,就是把${}替换为变量的值。
使用的#{}可以有效地防止SQL注入风险,提高系统安全性。
JAVA
LIUNX
1.查看某一条线程
(1)使用top命令,具体用法是 top -H
加上这个选项,top的每一行就不是显示一个进程,而是一个线程。
(2)使用ps命令,具体用法是 ps -xH
这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。
(3)使用ps命令,具体用法是 ps -mq PID
这样可以看到指定的进程产生的线程数目。