知识点记录
6.22
数据库的索引:
????? 其实我一直不是很理解索引,对索引的了解也就是听别人说,查大数据量的时候要建立索引,加快查询速度。 知道索引在大数据量的时候可以加快查询速度,那么索引是什么呢?
??? 定义是这样的 一个方案中的对象 被oracle服务器用来加速对表的查询
通过使用快速路径访问方法快速定位数据,于表独立存放,被Oracle数据库服务器使用和维护,注意建立了索引是不需要我们手动去操作的,会由数据库本身去操作,一定要有WHERE条件才有可能用到索引。
? 手动创建索引:
?CREATE INDEX index_name on table_name(col_name);
那么什么时候要创建索引呢:
1.包含了大量不同值的列2.包含了大量空值的列3.一个或者多个列经常出现在Where条件中或者作为连接的条件出现4.表的数据量很大 而且对表的查询经常表中数据的2%到4%(及少量数据)我们知道建立索引是有开支,索引我们应该避免建立不必要的索引:
1.一个很小的表(建立索引的开支比表本身的查询还大)2.列很少被用于查询条件 (既然前面提到了 只有在where中出现的列才会用到索引? 不出现在查询条件中的列当然就不需要索引了)3.表中的数据经常变动(经常变动那么数据库服务器就需要不停的维护索引表 开支比较大)4.要被索引的列作为条件表达式的一部分?
删除索引:
??? DROP INDEX index_name? 要删掉索引 必须有 drop any index权限查看索引的表>>user_indexes(索引的定义 和唯一性)
user_ind_columns >>得到索引的名称表和列名
?
oracle数据库会默认的为主键创建索引,索引列就为主键列,当数据库表某些列名或者表明发生改变的时候 会自动更新索引
?
6.23
?
1.查看表所有表空间的大小>>select t.tablespace_name,sum(bytes)/1024/1024 from dba_data_files t group by t.tablespace_name
2.未使用的表空间大小>> select t.tablespace_name,sum(bytes)/1024/1024 from dba_free_space t group by t.tablespace_name
???? 在创建用户的时候可以指定表空间 create user user_name identified by password default tablesapce tablespace_name;? 那么以后在这个用户下建立表的话?? 就是指定的这个表空间了
?
?
6.24
?
? 开发数据库应用的原则》》
?1.能用一条 SQL解决的尽量用一条sql语句解决
?2.一条sql不能解决的可以用pl/sql(pl/sql)尽量少用
?3.pl/sql无法做到的 用java存储过程来实现
?
?
6.25
? jdbc的优化,通过多种途径:
???????? 1.设置合适的预取行值 有多中途径
???????? 2.采用连接池技术
???????? 3.合理应用事务
???????? 4.选择合适的事务隔离层与及时关闭连接对象
?
6.26
?
?
6.27
?
?? JavaScript方面的 增加事件处理>>
?
IE:有自己的方法?? attachEvent("event_name",function) 两个参数 一个是添加的方法名 另外一个是要执行的方法
如:? function fnClick() { alert('clicked');}??
????????????????????????? detechEvent()
?
document.getElementById('id').attachEvent("onclick",fnClick);? //这样就添加了
?
?
FF:区别? 是操作dom?? addEventListener() 事件名称,要分配的函数,处理函数
?
function testListener() {
??? ??? ??? alert('listener success!');
}
oDiv.addEventListener("click",testListener,false); //这里是click 不是onclick
oDiv.removeEventListener();
?
事件对象
? 获取事件对象信息 ----- 1.引起事件的对象 2.事件发生时的鼠标信息 2.事件发生时的键盘信息
?
又是分IE和别的浏览器? 怎么就这么不相同呢 真心服了
IE中
?
? oDiv.onclick = functionn() {
???? var oEvent = window.event;
???? alert(oEvent.type);
}
?
FF:
? oDiv.onclick = funtion() {
???? var oEvent = arguments[0];
???? alert(oEvent.type);? //返回事件的类型 click
?}
?
写通用的方法
?
? function handlerEvent(oEvent) {
???? if(oEvent.type == "click") {
?????????? alert('Clicked');
??? }else if(oEvent.type == "mouseover") {
????????? alert("mouserOver");
??? }
?}
?
oDiv.onclick? = handlerEvent;
oDiv.onmouseover = handlerEvent;
?