总结1

1、ps命令显示当前状态处于running的进程,ps aux 显示所有进程和其状态;
2、朴素贝叶斯分类器是一种有监督的学习方法,其假定一个属性的值对给定类的影响独立于其他属性,此限制条件较强,现实中往往不能满足,但是该分类器得到了较大的成功,表现出 高精度,高效率,具有最小误分类率,耗时开销小的特征。该分类器是一种有向无环图模型,能够表示属性之间的因果依赖,通过图像化表示图形化的方法表示知识,以条件概率分布表表示属性依赖关系的强弱,讲先验信息和样本知识有机结合起来;优点:具有较强的学习和推理能力,能够很好地利用先验知识,缺点:对发生频率较低的事件预测效果不好,且推理与学习过程是NP-Hard(非确定性多项式难题)的;
3、索引的使用要恰到好处,其原则如下:
   1> 在经常进行连接,但没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。
   2> 在频繁进行排序或分组(即进行group by 或order by)的列上建立索引。
   3> 合理的使用索引,即在不同值较多的列上建立索引,在不同值较少的列上不要建立索引,比如,“性别”列上只有男和女,就不必建立索引。
   4> 如果带排序的列有多个,可以在这些列上建立复合索引(compound index)。
   5> 使用系统工具。如Informix数据库中有一个tbcheck工具,可以在可疑的索引上进行检查。在一些数据库服务器上,索引可能失效或者因为频繁操作而使得读取效率降低,如果一个使用索引的查询不明不白的降低,可以使用tbcheck工具检查索引的完成性,必要时进行修复。另外,当数据库表更新大量数据后,删除并重建索引可以提高查询速度。
总结:所谓优化即where子句利用了索引,不可优化即发生了表扫描或额外开销。
      1.任何队列的操作都将导致表扫描,它包括数据库函数、计算表达式。查询时要尽量将操作移至等号右边。
      2.in,or子句常会使用表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开,拆开的子句应该包含索引。
      3.要善于使用存储过程,它使SQL变得更加灵活和高效。
4、call by value 和 call by reference的区别:
call by value传的是变量的值,而call by reference传的是变量的地址。call by reference在调用时表面上看起来传的事变量本身,实际内部传的是指针,因此可以实现形参与实参的同一性,即对形参的修改能反映到实参。call by value在调用时,传的是和变量值相同的一个临时变量,形参和实参是两个变量,对形参修改无法影响到实参。
5、排序问题
我们一般提到的排序都是指内部排序,比如快速排序、堆排序和归并排序、插入排序(希尔排序)、基数排序等,所谓内部排序指在内存中完成的排序,RAM的访问速度大约是磁盘的25万倍,但是对大数据集来说就要涉及到外部排序了。外部排序是指大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要内存和外村进行多次数据交换,以达到整个文件排序的目的。外部排序最常用的算法是多路归并排序,即将源文件分解为多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序,然后对已排序的子文件进行归并排序。其他的外部外部排序有:置换-选择排序等。
其时间复杂度和空间复杂度如下图所示:

猜你喜欢

转载自wang-2011-ying.iteye.com/blog/1697299
今日推荐