0
点赞
收藏
分享

微信扫一扫

面试题~数据库

Sophia的玲珑阁 2022-08-26 阅读 124


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用的是‘+’字符串拼接,安全性较低 。  

 

举报

相关推荐

0 条评论