效率

常用的sql关键字

牧云@^-^@ 提交于 2019-12-10 00:38:12
distinct 查询出某个字段不重复的记录。可用distinct来返回不重复字段的条数count(distinct id)。 limit 记得这个可以用来做分页。它后面可以接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。 //初始记录行的偏移量是 0(而不是 1): mysql > SELECT * FROM table LIMIT 5 , 10 ; //检索记录行6-15 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql > SELECT * FROM table LIMIT 95 , - 1 ; // 检索记录行 96-last //如果只给定一个参数,它表示返回最大的记录行数目。换句话说,LIMIT n 等价于 LIMIT 0,n: mysql > SELECT * FROM table LIMIT 5 ; //检索前 5 个记录行 limit的效率高? 常说的Limit的执行效率高,是对于一种特定条件下来说的:即数据库的数量很大,但是只需要查询一部分数据的情况。高效率的原理是:避免全表扫描,提高查询效率。比如:每个用户的email是唯一的,如果用户使用email作为用户名登陆的话,就需要查询出email对应的一条记录。 SELECT

JAVA for和foreach 遍历的效率

做~自己de王妃 提交于 2019-12-09 06:27:58
for循环下标遍历 和 foreach 的原理比较 (JAVA) 今天看问答中又看到了类似的问题,就把自己理解过得写上来吧。去年看面试题也看到过,当时上网找没有搜到有说服力的。后来才弄明白并不是哪个一定好,是要分情况的。 首先需要提到一个很重要的接口:RandomAccess 。里面没有任何实现(标记接口),类似于序列化。作用在于: 能够选择最优的算法来完成随机或者顺序读写。 foreach的实现机制是利用Iterator,等价于: for (Iterator iterator = list.iterator();iterator.hasNext();){ sum += iterator.next(); } 下面简单举两个例子,用ArrayList存100万条数据,LinkedList存10万条数据。然后分别用for和foreah遍历。 其中ArrayList 是实现RandomAccess @Test public void forCompareForeach (){ List<Integer> list = new ArrayList<>( 1000000 ) ; for ( int i = 0 ; i< 1000000 ; i++){ //100万 list.add(i) ; } int temp = 0 ; long start1 = System.

JDK8 Stream 数据流效率分析

夙愿已清 提交于 2019-12-09 05:30:51
JDK8 Stream 数据流效率分析 Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> 代表对象引用流,此外还有一系列特化流,如 IntStream,LongStream,DoubleStream等 ),Java 8 引入的的Stream主要用于取代部分Collection的操作, 每个流代表一个值序列,流提供一系列常用的聚集操作 ,可以便捷的在它上面进行各种运算。集合类库也提供了便捷的方式使我们可以以操作流的方式使用集合、数组以及其它数据结构; stream 的操作种类 ①中间操作 - 当数据源中的数据上了流水线后,这个过程对数据进行的所有操作都称为“中间操作”; - 中间操作仍然会返回一个流对象,因此多个中间操作可以串连起来形成一个流水线; - stream 提供了多种类型的中间操作,如 filter、distinct、map、sorted 等等; ②终端操作 - 当所有的中间操作完成后,若要将数据从流水线上拿下来,则需要执行终端操作; - stream 对于终端操作,可以直接提供一个中间操作的结果,或者将结果转换为特定的 collection、array、String 等; 这一部分详细的说明可以参见: JDK8 Stream 详细使用 stream 的特点 ①只能遍历一次:

Iterator,for,forEach的遍历和效率

↘锁芯ラ 提交于 2019-12-09 04:55:33
对应数据的遍历方式有很多,下面介绍下Iterator,for,forEach三种方式的遍历和执行效率问题 1.代码如下: /** * Iterator,for,forEach比较 * @author w2cboy * date 2014-03-24 */ public class Test { private static final int COUNT = 10000; private static List<Person> persons = new ArrayList<Person>(); public static void init(){ //初始化,生成对象个数 Person person=null; for(int i=0;i<COUNT;i++){ person=new Person(i,"张三"+i,i+""); persons.add(person); } } //Iterator遍历 public static long testIterator(){ //开始编译执行时间 long start =System.nanoTime(); Person person=null; for (Iterator<Person> iterator = persons.iterator(); iterator.hasNext();) { person = (Person)

java为什么 foreach比for效率高

ε祈祈猫儿з 提交于 2019-12-09 04:51:54
(1)for是使用下标(偏移量)定位的. (2)foreach应该是使用类似循环子的机构 (3)对随机访问效率高的ArrayList. 使用下标访问效率本身很高.foreach内部的循环子直接封装下标,自己实现的for比foreach更直接,效率稍高些,但差别不会太大,仍然在一个数量级上。 (4)如果使用插入和删除效率高的LinkedList,for基于下标访问会每次从头查询,效率会很低.foreach循环子使用高效的地址运算,效率会高.其差距将很大,完全不在一个数量级别.如果数组很大,差别可能会几百甚至上千倍. 来源: CSDN 作者: chang_ge 链接: https://blog.csdn.net/chang_ge/article/details/79846227

java 增强for循环的效率问题

时间秒杀一切 提交于 2019-12-09 04:49:20
偶尔讨论起增强for循环是不是效率会不如普通的迭代遍历呢。在网上搜索一下这二者的效率没有发现一个合理的解释。 示例代码 List<String> l = new ArrayList<String>(); l.add("abc"); for(String str:l){ System.out.println(str); } 生成的class文件 new java.util.ArrayList [16] 3 dup 4 invokespecial java.util.ArrayList() [18] 7 astore_1 [l] 8 aload_1 [l] 9 ldc <String "abc"> [19] 11 invokeinterface java.util.List.add(java.lang.Object) : boolean [21] [nargs: 2] 16 pop 17 aload_1 [l] 18 invokeinterface java.util.List.iterator() : java.util.Iterator [27] [nargs: 1] 23 astore_3 24 goto 44 27 aload_3 28 invokeinterface java.util.Iterator.next() : java.lang.Object [31]

提高工作效率的十个原则

半腔热情 提交于 2019-12-08 11:09:33
当今工作和生活中,来自外部的压力要求我们提高效率,节约时间。当时间等于金钱,工作产出等于绩效时,我们不仅需要工作,而且需要有效率地工作。 提高效率可以改善我们工作和生活的平衡、工作满意度、个人成就感和对工作的自豪感。问题是,高效工作说起来容易做起来难。但幸运的是,你可以记住一部分提高效率的办法并将其付诸实践,然后让自己慢慢去改变。 1. 记住收益递减法则 每当我们提到工作和效率的时候,要记住并不是越多越好。研究发现,企业业务员工平均使用60种生产力工具来实现效率和工作之间的协作。考虑一下每个员工为了学会每种工具需要多少花费时间,再考虑一下使用这么多工具来完成每一项任务所花费的时间。这么做从表面上来看似乎将员工培养成了多面手,但其实潜在的精力消耗要远远超过了收益。由此我们就知道了,通过减少使用的工具数量,并精研于一些优秀和易于使用的工具,可以使你的效率显著提升。 2. 减少任务之间的切换 工作过程中最浪费时间的事情之一就是任务切换。任务切换成本是指从一个未完成的任务切换到另一个未完成的任务时所浪费的时间。任务切换会严重分散你的注意力,让你无法长时间地集中精力处理一件任务。当你收到的通知太多时,并感到需要立即处理这些通知带来的问题时,你可能会无意中发现自己的效率大大降低了。RingCentral的一项研究发现,我们平均每天在不同的任务和工具之间的切换成本是一小时(相当于一年32个工作日

QPainter 提高绘制效率的方法

北战南征 提交于 2019-12-05 23:33:55
原文: https://my.oschina.net/u/3919756/blog/1944747 如果我们用painter一个一个的绘制直线,圆等在控件上,绘制效率会不高。为了提高效率,我们可以设置一个画布pixmap,将所有的基础图形画布上,然后把画布画在控件上。 #include <QPixmap> void Widget::paintEvent(QPaintEvent *) { QPixmap pixmap(size()); //将画布的大小设置为和widget一样的 QPainter painter(&pixmap); //在画布上常见一个画家 painter.setBrush(Qt::yellow); painter.setPen(QPen(Qt::red, 2, Qt::DashLine)); painter.drawEllipse(QPoint(95, 333), 50, 50); painter.drawText(QPoint(50, 50), "Hello world"); painter.end(); //画完了 painter.begin(this); //在Widget上开始绘制 painter.drawPixmap(0, 0, pixmap); //在控件上绘制pixmap图像 painter.drawLine(QPoint(50, 50),

论文写作效率工具

自古美人都是妖i 提交于 2019-12-05 15:29:24
论文写作效率工具 最近刚完成了毕业论文,记录一些过程中用到的工具 Windows平台 坚果云-不怕论文丢失 Visio-流程图 XMind ZEN-系统框图、思维导图 Notepad++-轻量级编辑器,打草稿,编辑代码首推 立创EDA 丰富的库文件,省了好多事 Snipaste-截图、贴图 Photoshop-专业的图像处理 网易云音乐-必不可少的软件之一 Word-这玩意不能少了 Android平台 WiFi Mouse 讯飞输入法 闪念胶囊 一些其他网站 中国知网 万方数据知识服务平台 百度文库 - 学术查重 (新账号可以首单免费) 来源: https://www.cnblogs.com/tyxx/p/11931209.html