1. 数据库的优化方案
1)创建和优化索引
创建索引
复合索引
使用短索引
排序的索引问题
2)优化sql语句
like语句的优化
使用连接(JOIN)来代替子查询
不要在列上进行运算
不使用NOT IN和<>操作
3)优化硬件和网络
4)通过缓存减轻数据库的压力
2. 写出复制表(只复制表结构,源表明:A,新表名:B)的sql语句
法一:select * into b from a where 1$amp;
法二:select top 0 * into b from a;
3. 写出复制表(拷贝数据,源表明:A,新表名:B)的sql语句
insert into b(a, b, c) select d,e,f from a;
4. 简述不同数据库分页语句的用法
1). MySQL的分页:
select * from table_name limit(pageNum-1)*pageSize,pageNum*pageSize;
2). SQLServer的分页:
select top pageSize * from tabe_name where id not in (select top (pageNum-1)*pageSize id from table_name);
3). Oracle的分页:
//pageNum:当前页,pageSize:一页的记录数
select * from (select t.*,rownum rn from (select * from tb_users) t) where rn > (pageNum-1)*pageSize and rn <= pageNum*pageSize;
注意:rownum分页时必须重新命名。
5. Preparedstatement和statement的区别
1>. Prepared statement是预编译的,而statement不是,在每次执行sql语句的增删改时,如果是一条数据两者没差距,但如果数据量大于1,那么每次执行sql语句statement都要重新编译一次,而Prepared statement不用,Prepared statement的运行效率大于statement;
2>. 从代码的可维护性和可读性来说,虽然用Prepared statement来代替statement会使代码多出几行,但这样的代码无论从可读性还是可维护性来说,都比直接使用statement的代码高很多档次;
3>. 最重要的一点,从安全角度来说,使用Prepared statement可以大大提高程序的安全性,因为Prepared statement是用‘?’传参,可以防止sql注入,具有安全性,而statement用的是‘+’字符串拼接,安全性较低 。