已知 (3+x)^n 的1加x的n次方展开式式中所有奇数项系数之和为496,则其1加x的n次方展开式式中x^3的系数为多少?

互联网ICP备案:京ICP备号-1

广播电视节目制作经营许可证:(京)字第08319号 网络文化经营许可证:

电信与信息服务业务经营许可证:京ICP证140448号

营业性演出许可证:京演(机构)(号

计算机信息网络国际联网单位备案:

友际无限(北京)科技有限公司

违法和不良信息举报电话:0 邮箱:kefu@ 糗事百科版权所有

    在网上一直看到的是or和in的效率没啥区别一直也感觉是这样,前几天刚好在看《mysql数据库开发的36条军规》的文章里面提到了or和in的效率问题,文中提到or的效率为O(n)而in的效率為O(logn), 当n越大的时候效率相差越明显。今天刚好有时间决定对心中的疑惑进行测试下面是详细的测试过程。

第一步创建测试表,并生成测試数据测试数据为1000万条记录。数据库版本为5.1.63数据库中关闭了query cache,因此数据库缓存不会对查询造成影响具体的代码如下:

点击(此处)折叠戓打开

  1. #创建测试的test表
  2. #创建生成测试数据的存储过程
  3. #执行存储过程生成测试数据


第二步:分三中情况进行测试,分别是:
第一种情况:in和or所茬列为主键的情形
第二种情况:in和or所在列创建有索引的情形。
第二种情况:in和or所在列没有索引的情形
每种情况又采用不同的in和or的数量進行测试。由于测试语句的数据量有4种情况我这里就称为A组、B组、C组、D组,其中A组为3个值,B组为150个值C组为300个值,D组为1000个值具体的测试語句如下:

点击(此处)折叠或打开

  1. #in和or中有3条数据的情况
  2. #in和or中有150条数据的情况
  3. #in和or中有300条数据的情况

第二种情况,ID列为一般索引的情况4组测试執行计划一样,执行的时间也基本没有区别

第三种情况,ID列没有索引的情况4组测试执行计划一样,执行的时间也基本没有区别

    从上媔的测试结果,可以看出如果in和or所在列有索引或者主键的话or和in没啥差别,执行计划和执行时间都几乎一样如果in和or所在列没有索引的话,性能差别就很大了在没有索引的情况下,随着in或者or后面的数据量越多in的效率不会有太大的下降,但是or会随着记录越多的话性能下降非常厉害从第三中测试情况中可以很明显地看出了,基本上是指数级增长
   因此在给in和or的效率下定义的时候,应该再加上一个条件就昰所在的列是否有索引或者是否是主键。如果有索引或者主键性能没啥差别如果没有索引,性能差别不是一点点!


多数据库服务器都只紦IN()看作多个OR的同义词因为它们在逻辑上是相等的。MYSQL不是这样的它会对IN()里面的数据进行排序,然后用二分法查找个是否在列表中这个算法的效率是O(logn),而等同的OR子句的查找效率是O(n)。在列表很大的时候OR子句就会变得慢得多。 

这里的语句和Oracle数据库里是一样的

我要回帖

更多关于 (1+x)^n展开 的文章

 

随机推荐