小白一枚,最近在面试工作,问到关于数据库方面的问题,比如数据性能优化等等,不知道该怎么回答.
解决方案 »
- java中如何访问不同Jpanel中的控件
- 网络安全策略终极评估(以Web系统描述)
- 新建对话框时,出现异常,请大家帮助分析一下。(有源代码)
- java中弹出提示对话框,应该怎么写?
- package 问题
- ant使用问题,如何将用到的目录打进jar文件包
- 请教:谁能解释一下Serializable接口及serialVersionUID常量的用法?
- IE5.0版不支持“parent.form1.holdDateAll.options[parent.form1.holdDateAll.length]=new Option('aa','aa')”,怎么办?
- java的int数组和char数组在println时的区别
- 求java 内存泄漏例子
- idea打包jar提示错误: 找不到或无法加载主类
- java中,在编写方法时一个从未见过的定义方式
eg: select billdate from A where empid between 1 and 5; --> select billdate from A where empid >= 1 and empid <= 5;2.尽量SQL不要用小写字母,都用大写字母3.能用索引就用索引,其作用就相当于告诉数据库直接从哪里取数据就可以了,不用全部查找一遍4.使用group by时,最后先把不用的数据排除掉,可以先在where 条件里面排除无关数据,在group by5.in 和 not in ,换为 Exists 和 not Exists 6.当进行数据需要多表关联时,最好使用别名7.复杂的SQL往往会消耗大量的资源,能用函数解决,就用函数8.程序进行select 时,后面都要commit,这会释放占用的资源9.也是最重要的,不要用 select * from 【表名】 ,用select 【列名】 from 【表名】 。除非不知道表字段时测试用。以上是我的一些经验,纯当抛砖引玉了。
eg: select billdate from A where empid between 1 and 5; --> select billdate from A where empid >= 1 and empid <= 5;2.尽量SQL不要用小写字母,都用大写字母3.能用索引就用索引,其作用就相当于告诉数据库直接从哪里取数据就可以了,不用全部查找一遍4.使用group by时,最后先把不用的数据排除掉,可以先在where 条件里面排除无关数据,在group by5.in 和 not in ,换为 Exists 和 not Exists 6.当进行数据需要多表关联时,最好使用别名7.复杂的SQL往往会消耗大量的资源,能用函数解决,就用函数8.程序进行select 时,后面都要commit,这会释放占用的资源9.也是最重要的,不要用 select * from 【表名】 ,用select 【列名】 from 【表名】 。除非不知道表字段时测试用。以上是我的一些经验,纯当抛砖引玉了。
合理的设置参数,分配内存,设置表空间等对于性能影响是整体性的。
还有一些要涉及到操作系统和硬件方面,比如合理使用RAID,把临时表空间放到SSD上去等。
另外经验是一方面,大多数情况下调优是要做性能测试的。有些优化措施是互损的,比如建索引,查询就会提升性能,但是每次update、delete、insert表的时候,都会维护相应的索引,性能就会下降。
行数小于300的表建索引性能反而低。
诸如此类的知识可以写一本书。所以楼主还是找本数据库方面的书看看吧,这不是几句话就能说完的。
对于程序员来说可能更多的是 SQL查询优化。