问题 我之前一直使用 Java,现在开始转向 C++。...我发现使用 C++ 的人经常用指针表示对象,比如像下面这样: Object *myObject = new Object; 而不是, Object myObject; 或者在调用成员函数的时候,都会这样...: myObject->testFunc(); 而不是, myObject.testFunc(); 我有点想不明白为什么这么做?...什么时候该使用 new? 你需要延长对象生命周期。 意思是说你想一直使用某个地址位置的变量,而不是它的副本,对于后者,我们更应该使用 Object myObject; 的语法。 你需要很多内存。...切片的意思就是说:在函数传参处理多态变量时,如果一个派生类对象在向上转换(upcast),用的是传值的方式,而不是指针和引用,那么,这个派生类对象在 upcast 以后,将会被 slice 成基类对象,
最后Nginx和Apache的差异总结成一句话就是:“Nginx适合处理静态请求和反向代理,Apache适合处理动态请求”。...而目前比较主流的 Web 服务器应用也就是 Nginx 和 Apache 了,今天就给大家阐述一下为什么我一直都推荐大家使用 Nginx 而不是 Apache? ?...有关 Nginx 和 Apache 的介绍我就不做赘述了,大家自行百度、谷歌一下就可以了解了,废话不多说了,直奔主题: 1、作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接...Nginx 采用 C 进行编写,不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好很多。 ?...这里要注意一点,epoll(freebsd 上是 kqueue)网络 IO 模型是 Nginx 处理性能高的根本理由,但并不是所有的情况下都是 epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件
我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。...当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢? exa 是一个常规 ls 命令的现代替代品,它让生活变得更轻松。这个工具是用 Rust 编写的,该语言以并行性和安全性而闻名。...安装 exa 要安装 exa,请运行: $ dnf install exa 探索 exa 的功能 exa 改进了 ls 文件列表,它提供了更多的功能和更好的默认值。它使用颜色来区分文件类型和元数据。...它能识别符号链接、扩展属性和 Git。而且它体积小、速度快,只有一个二进制文件。 跟踪文件 你可以使用 exa 来跟踪某个 Git 仓库中新增的文件。...image.png 我相信 `exa 是最简单、最容易适应的工具之一。它帮助我跟踪了很多 Git 和 Maven 文件。
但我还是推荐使用wp建站,下面说说我的看法。...两者对比 相对而言,wordpress使用得人更多,插件也更丰富,受众广,而且出现问题解决也方便,但必然少不了wp是真的大,对于使用哪一个程序来做博客,我推荐得是1H1G服务器还是选择ty或者emlog...为什么说WordPress更适合新手 我觉得现在用1h1G的人应该很少很少了,看你们聊天动不动就是32H起步,所以Wp肯定是无压力的,而为什么我主推WP呢?...其次,WordPress在不装任何插件下,有经典编辑器和可视化编辑器,写文章时可以直接排版,直接上传图片,而ty则需要通过链接的方式插入,或者更新文章用mark编辑器书写。...除此之外,目前好多oss插件都是优先考虑wp,毕竟使用的人多。 另外,如果你想构建小程序,app等等,肯定也是优先考虑WP,没有为什么。
子句只能指定行的条件,而不能指定组的条件(这里面有个“阶”的概念,可以查阅:神奇的 SQL 之层级 → 为什么 GROUP BY 之后不能直接引用原表中的列),因此就有了 HAVING 子句,它用来指定组的条件...,这种情况下 HAVING 子句也是可以使用的(HAVING 不是一定要和 GROUP BY 一起使用) 写的更严谨点,如下(没有 HAVING,不是主角,看一眼就好) -- 无论如何都有结果返回...这种时候就必须使用更能准确反映出群体趋势的指标——众数(mode)就是其中之一 那么如何用 SQL 语句来求众数了,我们往下看 -- 使用谓词 ALL 求众数 SELECT salary, COUNT...语句的要点在于比较条件 >= COUNT(*)/2 里的等号,加上等号并不是为了清晰地分开子集 S1 和 S2,而是为了让这 2 个子集拥有共同部分 如果去掉等号,将条件改成 > COUNT(...HAVING 子句的要素 3 个要素:常亮、聚合函数 和 聚合键 HAVING 大多数情况下和结合 GROUP BY 来使用,但不是一定要结合 GROUP BY 来使用 3、SQL
小杨心想“糟糕,又写错 SQL 语句了,这下又要面临运维和经理的混合双打了, 不行我得立马改下这条 SQL 语句,让我想想哪里出错了” ?...果然这条 SQL 语句开始走了索引。小杨沾沾自喜以为解决了个天大的 Bug。 经理微微一笑问道“你知道为什么为什么加了引号就走了索引吗?如果字段是 int 类型,那么查询的时候需不需要加引号呢?...经过小杨研究发现,如果字段是 varchar类型,等号右侧必须加引号才走索引;如果字段是 int 类型,那么等号右侧加不加引号都是会走索引的。 什么?你不相信小杨说的话,有图有真相。...,MySQL 会放弃使用索引 所以如果字段是 varchar 类型,等号右侧必须加引号才走索引,否则由于隐式转换,MySQL 会放弃使用索引。...所以虽然需要隐式转换,但不影响使用索引 小杨追问:“你还能在告诉我一些隐式转换的知识吗?”
,而不能指定组的条件(这里面有个“阶”的概念,可以查阅:神奇的 SQL 之层级 → 为什么 GROUP BY 之后不能直接引用原表中的列),因此就有了 HAVING 子句,它用来指定组的条件。...这种时候就必须使用更能准确反映出群体趋势的指标——众数(mode)就是其中之一 那么如何用 SQL 语句来求众数了,我们往下看 -- 使用谓词 ALL 求众数 SELECT salary, COUNT(...语句的要点在于比较条件 >= COUNT(*)/2 里的等号,加上等号并不是为了清晰地分开子集 S1 和 S2,而是为了让这 2 个子集拥有共同部分 如果去掉等号,将条件改成 > COUNT(*)/2...,这样一来,写出来的 SQL 语句不但可以分清两者各自的功能,而且理解起来也更容易 执行速度更快 使用 COUNT 等函数对表中数据进行聚合操作时,DBMS 内部进行排序处理,而排序处理会大大增加机器的负担...子句的要素 3 个要素:常数、聚合函数 和 聚合键 HAVING 大多数情况下和结合 GROUP BY 来使用,但不是一定要结合 GROUP BY 来使用 3、SQL 的执行顺序 WHERE 子句是指定行所对应的条件
,能够使用的要素有 3 种: 常数 、 聚合函数 和 聚合键 ,聚合键也就是 GROUP BY 子句中指定的列名 示例中的 HAVING COUNT(*) = 3 , COUNT(*) 是聚合函数...,这种情况下 HAVING 子句也是可以使用的(HAVING 不是一定要和 GROUP BY 一起使用) 写的更严谨点,如下(没有 HAVING,不是主角,看一眼就好) -- 无论如何都有结果返回...这种时候就必须使用更能准确反映出群体趋势的指标——众数(mode)就是其中之一 那么如何用 SQL 语句来求众数了,我们往下看 -- 使用谓词 ALL 求众数SELECT salary, COUNT...语句的要点在于比较条件 >= COUNT(*)/2 里的等号,加上等号并不是为了清晰地分开子集 S1 和 S2,而是为了让这 2 个子集拥有共同部分 如果去掉等号,将条件改成 > COUNT(...HAVING 大多数情况下和结合 GROUP BY 来使用,但不是一定要结合 GROUP BY 来使用 3、SQL 的执行顺序 WHERE 子句是指定行所对应的条件,而 HAVING 子句是指定组所对应的条件
在使用等号运算符时,遵循如下规则: 如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等。...在这里插入图片描述] = 的使用 字符串存在隐式转换。...,两边的操作数的值都为NULL时,返回的结果为1而不是NULL,其他返回结果与等于运算符相同。...SELECT job_id FROM jobs WHERE job_id LIKE ‘IT\_%‘; 如果使用\表示转义,要省略ESCAPE。如果不是\,则要加上ESCAPE。...为了命名字符的范围,使用一个‘-’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。 (5)‘*’匹配零个或多个在它前面的字符。
本文总结一下我获取的资料和个人在一些难点上的理解。 当我们要求一个函数 min f(x) 的时候,如果 f(x) 可导,我们通过是通过求 f(x) 的导数来得。...1、满足条件 不是所有的极值问题都可以适用的凸优化理论的,它必须满足以下条件: 1、目标函数 f(x) 为凸函数 2、不等式约束函数 g(x) 为凸函数 3、等式约束函数 h(x) 为仿射函数 只有同时满足以上...一句话就是最高阶数为1的函数,如:Ax+b; 可以这么理解条件3,等式约束条件 h(x)=0 可以这么写 也就是说 h(x) 和 -h(x) 都必须同时是凸函数,那么其二阶导数就必须为0,也就是说阶数不能超过...我们写出模型的拉格朗日表达式 如果这么定义拉格朗日表达式,那么 就上述模型就等价于 f(x),为什么呢? 我么可以看到这个函数是以α,β的函数,其中α必须大于等于0....3.2.2 KKT条件 在本节最开始说了,我们需要的: 不是原问题 > 对偶问题,而是原问题 = 对偶问题。 因此在3.2.1推导的公式中,两个大于等于号必须取等号,这就能推导出我们的KKT条件。
1.NULL是一种特殊的值,对某字段使用distinct 关键字时,NULL和一般值一样,都会排重,只保留一个值。 ?...2.不能对NULL值使用比较运算符 直白地讲,不能对null值使用等号(=)或者不等号(!=)进行比较,要使用is null 和 is not null。 ?...5.使用sum函数和avg函数时,相应列中包含NULL的,会发生什么? ? sum和avg函数作用于含有NULL的列,NULL值不参与计算。上面图中,sum(col) 是1+2+2+3=8。...avg(col) 是(1+2+2+3)/4=2,注意分母是4而不是6。如果需要将NULL值当作0值参与到运算中,可以用case when的方式进行判断赋值。...(在有些地方看到了在插入和更新数据时NULL的注意事项和索引相关的知识,由于用的比较少,就不放在这里了,可以参考文末链接自行学习) ? reference: 1.
本文转载自数据管道 这两天私信讨论问题的朋友挺多的,我也都回复了,响应其中一个读者的朋友的要求。 “请问有SQL或者数据分析的面试题吗?”...说实话,我真没刷过题,上上周群里有朋友问了一道sql题,那种难度级别已经够你面任何一家公司了。所以,没做出来也很正常,我之所以会做也只是因为用的多而已。...这里强调一下,不是说你做出来了这些题,SQL很熟练大厂就会要你,今年的分析师岗位不太好找,如果你还是一直在努力爬虫、熟练Python、为了分析而分析的阶段,建议去找爬虫工程师或者Python开发,不会有一家大厂要你做分析师的...为什么要你写SQL,因为你连特征工程都做不好,就别扯回归、分类这些东西了。...今天做了一下sql zoo上面的题,还算有趣的一个做题网站。大致几部分内容:基础、关联子查询、聚合函数、JOIN等等,不算太难。 ? 比较有趣的是,每次你提交代码对了会给你一个笑脸,如下: ?
在这里一定会有读者担心如果没有把变量的类型写明是不是会造成类型安全问题。那么,在这里我要告诉各位读者的是开发人员有没有写明变量类型与变量的类型安全毫无关系,所以大家不必担心。...看到这里,一定会有读者说既然有明确的类型,为什么不指定明确的类型呢,而且使用隐式变量也会容易让其他开发人员搞不清楚变量的类型。那么我现在就给大家解答一下。...首先,使用明确的类型有可能会造成代码的执行顺序改变,这一点我将在后面的文章中具体讲解。其次,这就是一个编码命名习惯问题了,我们在 new 一个对象时可以通过等号右边的类型得知变量的类型。...[笑哭] 一些有经验的开发人员往往会对新手开发人员说不要使用匿名类型,因为它会影响性能影响静态类型检查。那么,我在这里要说的是这完全都是在胡扯!...首先局部变量类型推断不等于动态类型检查,var 声明的变量不是动态变量,c# 会根据赋值符号等号右边的值的类型来确定等号左边的变量类型。其次,编译器会自动判断类型。
本文总结一下我获取的资料和个人在一些难点上的理解。 当我们要求一个函数 min f(x) 的时候,如果 f(x) 可导,我们通过是通过求 f(x) 的导数来得。...1、满足条件 不是所有的极值问题都可以适用的凸优化理论的,它必须满足以下条件: 1、目标函数 f(x) 为凸函数 2、不等式约束函数 g(x) 为凸函数 3、等式约束函数 h(x) 为仿射函数 只有同时满足以上...一句话就是最高阶数为1的函数,如:Ax+b, 可以这么理解条件3,等式约束条件 h(x)=0 可以这么写 4.png 也就是说 h(x) 和 -h(x) 都必须同时是凸函数,那么其二阶导数就必须为0,也就是说阶数不能超过...我们写出模型的拉格朗日表达式 5.png 如果这么定义拉格朗日表达式,那么 6.png 就上述模型就等价于 f(x),为什么呢? 我么可以看到这个函数是以α,β的函数,其中α必须大于等于0....3.2.2 KKT条件 在本节最开始说了,我们需要的: 不是原问题 > 对偶问题,而是原问题 = 对偶问题。 因此在3.2.1推导的公式中,两个大于等于号必须取等号,这就能推导出我们的KKT条件。
MySQL 索引使用什么数据结构?为什么用 B+做索引? 使用B+树。 这个问题,可以在脑子里面先思考一下,如果让你来设计数据库的索引,你会怎么设计? 我们还是用Why?What?How?...这里我解释一下回表,比如我们表主键索引是学号,另外我们还根据手机号也建了索引,如果我们where 条件是手机号,分二种情况: 正例:IDB能够建立索引的种类分为【主键索引、唯一索引、普通索引】,而覆盖索引是一种查询的一种效果...说明:存在非等号和等号混合判断条件时,在建索引时,请把等号条件的列前置。如:where c>? and d=? 那么即使c的区分度更高,也必须把d放在索引的最前列,即建立组合索引idx_d_c。...mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。...反例:某业务三年总数据量才2万行,却分成1024张表,问:你为什么这么设计?答:分1024张表,不是标配吗? How?
%CLASSPARAMETER关键字后面跟着类参数名称、一个可选的等号和要分配给该类参数的文字值(字符串或数字)。 类参数总是定义为常数值。...下面的示例定义了两个类参数; 第一个%CLASSPARAMETER子句使用了等号,第二个省略了等号: CREATE TABLE OurEmployees ( EMPNUM INT NOT...示例:动态SQL和嵌入式SQL 下面的示例演示了使用动态SQL和嵌入式SQL创建表。...注意,在动态SQL中,可以在同一个程序中创建一个表并将数据插入到表中; 在嵌入式SQL中,必须使用单独的程序来创建表并将数据插入到表中。 最后一个程序示例删除表,以便可以重复运行这些示例。...注意,因为COMPUTECODE是ObjectScript代码,而不是SQL代码,ObjectScript $PIECE函数使用双引号分隔符; 因为这行代码本身是一个带引号的字符串,$PIECE分隔符必须通过加倍的方式转义为字面量
对于两个相同的列表,它们必须包含相同数量的元素,并且 list1 中的每个元素必须与 list2 中的相应元素匹配。 $LISTSAME 使用它们的字符串表示来比较列表元素。...可以使用 SQL $LISTBUILD 函数或 ObjectScript $LISTBUILD 函数创建列表。...可以使用 SQL $LISTFROMSTRING 函数或 ObjectScript $LISTFROMSTRING 函数将分隔字符串转换为列表。...可以使用 SQL $LIST 函数或 ObjectScript $LIST 函数从现有列表中提取列表。 以下是有效列表的示例: $LISTBUILD('a','b','c'):一个三元素列表。...如果列表参数不是有效列表(并且不是 NULL) SQL 会生成 SQLCODE -400 致命错误。
当CBO发现表达式中存在常量或常量表达式时,优化器会在SQL执行之前将表达式的值计算出来,避免在表达式中进行多次计算。但是优化器无法将等号一边的常量移动到等号的另一边。...这里所说的等号是泛指,还包括不等号、大于号和小于号等。...第三个等式由于对列进行了运算,因此不能使用这个列上的常规索引。当然这种情况可以使用函数索引,但是显然函数索引的通用性不好,而且要求函数索引的表达式与查询的表达式要完全匹配。...对于这种情况,完全没有必要使用函数索引,而且如果使用函数索引除了增加系统的开销外,没有任何的好处。 CBO不使用索引本身就会极大地影响性能,但这还只是第三个等式的一个缺点而已。...执行计划都是全表扫描,而SQL的运行时间差距居然如此之大,是由于这个SQL对列进行了转换操作,导致表中的每条记录都要对CREATED列的值进行TO_CHAR函数的调用,显然无论是对列进行运算,还是函数的调用都是相当耗时的
可以加快数据的检索速度 可以加速表与表之间的连接 在使用分组和排序进行检索的时候,可以减少查询中分组和排序的时间 四、缺点 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。...联合索引:在多个字段上建立索引,能够加速查询到速度 八、索引和sql语句的优化 1、前导模糊查询不能使用索引, 如name like ‘%静’ 2、Union、in、or可以命中索引,建议使用in 3、...同理,如果建立了(a,b,c)索引就不必再建立a,(a,b)索引 7、存在非等号和等号混合判断条件时,在建索引时,要把等号条件的列前置 8、范围列可以用到索引,但是范围列后面的列无法用到索引。...9、把计算放到业务层而不是数据库层。 在字段上计算不能命中索引, 10、强制类型转换会全表扫描, 如果phone字段是varcher类型,则下面的SQL不能命中索引。...被查询的列,数据能从索引中取得,而不是通过定位符row-locator再到row上获取,即“被查询列要被所建的索引覆盖”,这能够加速度查询。
领取专属 10元无门槛券
手把手带您无忧上云