摘要:
前面一篇说法了索引结构,和几种索引在数据表上的结构,了解了索引可以为查询服务,这篇说一说如何创建索引。 >平时可能的创建方式 这个系统中要用到A字段,B字段,C字段做为查询的条件,联接的条件较多,有些地方有A,B组合查询的,有些地方有A,C组合查询的,这些是前提,我大概认为是这样的。到目前为止我看到的同学们建索引都是 A,B,C各建一个索引,下面慢慢说这里有什么问题,也有可能没有问题,得看情况。 >建索引应该考虑条件(查询,联接等),查询字段,数据的分布 1)条件,这个很个很是被大家接受,很多都是条件上建索引的。比如下面代码select * from tb where a>1 阅读全文
摘要:
有很长时间没有更新博客了,再过几天都2月分了,如果再不更新一篇,我1月分都没有更新,保持连续,今天更新一篇。 最近没有什么看技术方面的东西,游戏,画画搞这些去了。我发现我每年一到年底就是搞这些东西,其实平时技术也搞得少。昨天看了一篇园友博客写的为什么要在自增列,时间上面建聚集索引,我今天更新一篇关于索引的东西。我翻出以前讲关于索引和创建索引的ppt复习一篇,下面就是关于索引的内容。 1.先从字面,定义来理解一下索引。百度百科是这样来说的“将文献中具有检索意义的事项(可以是人名、地名、词语、概念、或其他事项)按照一定方式有序编排起来,以供检索的工具书”,从这一点可以看出索引是将一些关键的... 阅读全文
摘要:
上一篇把C#语言的继承,多态里的特殊的情况做了一下总结,其实那一部分代码都是从Java翻译过去的,今天来总结一下Java在这种情况下是怎么调用的。上一篇我们说的是:1.多态,只在多态系里方法调用,很简单,先调重写方法,如果没有再调父类的虚方法。2.非多态,只自声明时类型,先调自身的方法(比如非继承普通方法,new修饰的方法),如果没有再看继承来的方法,最后再看多态系方法(也就是重写了的方法)但是Java里做了测试,这个规律不适用,下面是测试代码 public class Shape { } public class Rectangle extends Shape { } ... 阅读全文
摘要:
最近在看博客的时候看到一块很绕的地方,有点类似于以前学习C语言是的i++,++i组合到一起使用的情况,很坑b的,绝对会比i++,++i这种情况更有用,虽然实际代码里面确实很少出现.面对象像三大特点不是封装,继承和多态吗,绕的地方主要是继承和多态融合到一起的时候.不啰嗦,先看下面代码 public class Shape { } public class Rectangle : Shape { } public class Triangle : Shape { } public class Father { public void Foo(Rectan... 阅读全文
摘要:
>可以把lock关键字可以看成try{ Monitor.Enter(x); //..}finally{ Monitor.Exit(x);}这样子的结构,当然使用lock关键字更方便>容易混淆的lock(对象)这个里面的锁对象很容易搞混淆,下面区别一下lock(this),lock(typeof(tt)),lock("a")1)lock(this) 下面代码public class A{ public void Foo(){ lock(this){ //... } }}如果是A的同一个对象,开多个线程调用Foo方法,... 阅读全文
摘要:
>1 IEnumerator与IEnumerableIEnumerator与IEnumerable两个接口是用于实现迭代器的接品只要实现了IEnumerable就可以用foreach,linq等语法,一般来说实现IEnumerable接口的是Collection的数据,也就是一个集合,比如List,ArrayList等这种类型,因为一般foreach,linq都是在一个集合中查询而IEnumerator主要是支持IEnumerator一个接口,里面提供了用于迭代的属性和方法,两个接口代码public interface IEnumerable{ IEnumerator GetEnumer 阅读全文
摘要:
最近程序里面需要一个组合的计算,于是写了一个组合类,没有实现排列,因为只要组合,所以只实现了组合,这里我们思想记录下来. 本文里约定 C(n,m)即从n个中选m个的组合,其中n>=m,m>=0,n>0 平时我们数据里学的组合一般都是问多少种情况比哪C(3,1)有几种情况,答案是3,不是我们排列出来的情况.而我这次写的主要是排列出组合情况,比如:C(3,1),输出结果1,0,00,1,00,0,1这样子的结果,当然结果我能输出来,有多少种情况我也能输出来,下面是思路 1.刚开始的时候,我会想到用动态规划,以前做过n个字符全排,就是变成n-1个字符全排列加上最后一个字符的各种位置 阅读全文
摘要:
最近在学习java的语法,发现java中两个字符串某些情况下不能用==这个来判断,比如自己定义的类中有String属性,那么就不能用==判断两个是否相等。这才开始比较C#和Java在这里的区别,最后发现区别不大,只有一个地方有一点区别。 一。C#中Equals(),==区别 C#代码 1 // 1) string类型 2 Console.WriteLine("1)"); 3 string s1 = "abc"; 4 string s2 = "abc"; 5 6 string s3 =... 阅读全文
摘要:
以前的理解: sql语句里where后面的条件是否分先后顺序的 ,比如 A and B and C和 C and B and A 是一样,不像C语言 A && B 与B && A 执行效果不一样,是从左向右的。为什么会得出这样的结论呢?也就是论据是什么?如果条件有三列a,b,c;b列上有索引 那么Where a='a' and b='b' and c='c' 与Where c='c' and b='b' and c='c' 都会优先选b列,因为b列有索引,所以不会是从 阅读全文
摘要:
今天群里有人问到如下代码打印出来的东西为什么不是连续得,所以有大神解释了原因。在这过程中遇到了些奇怪的情况 static void Main(string[] args) { for (int i = 0; i < 10; i++) { new System.Threading.Thread(Foo).Start(); } //System.Threading.Thread.Sleep(20); //Console.WriteL... 阅读全文