文|顾旭光 来源|智能相对论(aixdlun) 从视频过渡到社交,或者说以视频为载体的社交,并不是一个新话题。...陌陌副总裁王太忠在2017年说: “我们在外面提过视频社交,从我自己来看,与其叫视频化,不如说所有功能都会渗入到视频,我们希望在功能点里视频都能植入进去。” 很明显,他们把视频视作一个无所不能的载体。...智能相对论认为关键在于建立一种好的入场机制,所谓入场机制不是只真人实名认证之类的验证。...这是为什么智能相对论认为头条基于抖音的社交必然失败,因为所有的内容最终都会主播化,私人和公开在抖音当中很难制定出一个界限。...2019年初,字节就推出了社交应用“多闪” 为什么直播用户愿意付费,这是因为直播本质上是一种娱乐输出,用户对产品本身特性的认知很明确,你播的好,我便付费。
当然这里只是打个比方,我并没有按照三层的规范来写这个分页控件,我的目的只是想少写点代码。..., 核心代码就是如何分页,也就是分页的算法,使用哪个SQL语句既可以达到很高的效率,又可以满足排序、查询的需求。 ...这里针对sql Server 2000 进行了优化,采用两种分页算法。 第一种算法针对的是一个排序字段,且排序字段没有重复值的情况。 第二种算法针对的是多排序字段的情况。 ...第二种算法的SQL语句 对于这种算法你可能会说,在显示最后一页的时候有问题,这个我也发现了,并且在分页控件里面对最后一页作了修改,已经修证了这个bug。...,但是也小于1秒, //这回SQL Server 占用的内存增加幅度不大 120M左右 可见设置好索引对于海量数据的分页的重要性
大家好,又见面了,我是你们的朋友全栈君。...” 首先,sqlserver里的标识符有一定的规则,比如 你 create table abc 123(…) 那么中间含有空格,它不是符合规则的。...[]]bb] 也就是说,quotename 使函数中的输入成为一个有效的标识符。...比如上例中 aa[]bb 不是一个有效的标识符。...为什么输出结果是:[abc[]]def]呢?
优点:扩展性好,没有多个分表后的复杂操作(php代码) 缺点:单个表的数据量还是没有变,一次操作所花的时间还是那么多,硬件开销大。...这个时候如果要把已有的大数据量表分开比较痛苦,最痛苦的事就是改代码,因为程序里面的sql语句已经写好了。现在一张表要分成几十张表,甚至上百张表,这样sql语句是不是要重写呢?...假如我有一张用户表user,有50W条数据,现在要拆成二张表user1和user2,每张表25W条数据, 这样我就成功的将一张user表,分成了二个表,这个时候有一个问题,代码中的sql语句怎么办?...以前是一张表,现在变成二张表了,代码改动很大,这样给程序员带来了很大的工作量,有没有好的办法解决这一点呢?...c和d在网上看到的,没有测试,大家试一下吧。 优点:扩展性好,并且程序代码改动的不是很大 缺点:这种方法的效果比第二种要差一点 三,总结一下 上面提到的三种方法,我实际做过二种,第一种和第二种。
我举个例子来说吧,如果有两个sql都要修改同一张表的同一条数据,这个时候怎么办呢,是不是两个sql都可以同时修改这条数据呢?...优点:扩展性好,没有多个分表后的复杂操作(php代码) 缺点:单个表的数据量还是没有变,一次操作所花的时间还是那么多,硬件开销大。...这个时候如果要把已有的大数据量表分开比较痛苦,最痛苦的事就是改代码,因为程序里面的sql语句已经写好了。现在一张表要分成几十张表,甚至上百张表,这样sql语句是不是要重写呢?...这样我就成功的将一张user表,分成了二个表,这个时候有一个问题,代码中的sql语句怎么办?以前是一张表,现在变成二张表了,代码改动很大,这样给程序员带来了很大的工作量,有没有好的办法解决这一点呢?...c和d在网上看到的,没有测试,大家试一下吧。 优点:扩展性好,并且程序代码改动的不是很大 缺点:这种方法的效果比第二种要差一点 三,总结一下 上面提到的三种方法,我实际做过二种,第一种和第二种。
Redis的新烦恼 你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。 ?...集群时代 这一天,我找到了大白和小黑,咱们仨合计了一下,一个节点的力量不足,但众人划桨可以开大船啊,我们决定把三个人的内存空间“拼”起来,每个人负责一部分数据,合体进化成一个大的缓存服务器,进入集群Cluster...通过团队里的任何一个成员都行,就比如说我吧,只要告诉我IP和端口,我就给他发送一个MEET信息,发起握手,对方得回我一个PONG信息同意入伙,最后我再回他一个PING信息,三次握手就完成了!...和原来不同的是,数据读写的时候多了一个步骤:得先检查数据是不是由自己负责。...不过程序员们是感知不到的,他们都是用封装好的库来操作,才不会亲自写代码来跟我通信呢~ 一开始的工作很顺利,但没过多久就出事儿了! ? ?
--- 拔出你心中最困惑的刺!--- 在这个用过即弃的时代,不要让你的求知欲过期。 今日拔刺: 1、中国公司为什么不做一个像Windows一样的操作系统?...本文 | 1945字 阅读时间 | 五分钟 中国公司为什么不做一个 像Windows一样的操作系统?...1989年的时候,巴西开发了基于AT&T的SVR2.0的UNIX类的操作系统COBRA。国人就意识到,中国得有自己的自主版权操作系统。历史告诉我们,技术决定命运,不能将自己的未来寄托在别人的身上。...顶着“完全自主可控”,COSIX1.0操作系统在四五年的众人划桨开大船下实现了,但由于兼容性和适配性的问题,被调侃为在“闭门造车”。...在大环境下,linux成了大家的选择,开源,免费,还可以修改。于是不管是中标还是红旗好,都在此基础上出厂。
大家好,又见面了,我是你们的朋友全栈君。 首先,sqlserver里的标识符有一定的规则,比如 你 create table abc 123(…) 那么中间含有空格,它不是符合规则的。...X set @sql=’select * from ‘ + quotename(‘aa[]bb’) exec(@sql) 当然你也可以直接写出转义的写法 select * from [aa[]]bb...] 也就是说,quotename 使函数中的输入成为一个有效的标识符。...比如上例中 aa[]bb 不是一个有效的标识符。...(‘aa’,””) 生成的有效的标识符为 ‘aa’ 解释2: 简单来说吧 比如你有一个表,名字叫 index 你有一个动态查询,参数是表名 declare @tbname varchar(256) set
大家好,又见面了,我是你们的朋友全栈君。 首先,sqlserver里的标识符有一定的规则,比如 你 create table abc 123(…) 那么中间含有空格,它不是符合规则的。...即以[]来定界标识符。 quotename将 字串成为有效的标识符。 它有什么用呢? 我举个例子。...set @sql=’select * from ‘ + quotename(‘aa[]bb’) exec(@sql) 当然你也可以直接写出转义的写法 select * from [aa[]]bb]...也就是说,quotename 使函数中的输入成为一个有效的标识符。...比如上例中 aa[]bb 不是一个有效的标识符。
在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏性的漏洞之一,这里我想问,我们真的了解SQL注入吗?看完本篇文章希望能让你更加深刻的认识SQL注入。...规定要发送的 SQL 查询。注释:查询字符串不应以分号结束。 connection 可选。规定 SQL 连接标识符。如果未规定,则使用上一个打开的连接。...sql语句最终变为 执行失败,所以mysql_query()函数会返回一个布尔值,在下行代码中mysql_fetch_array($sql)将执行失败,并且PHP会显示一条警告信息,告诉我们mysql_fetch_array...()的第一个参数必须是个资源,而代码在实际运行中,给出的参数值却是一个布尔值。...可以发现我们加上or 1=1就成功返回了数据,这是因为1=1为真,不管前面是不是假,数据都会返回,这样就把表里面数据全部返回,我们没看见,是因为代码中并没有迭代输出。这样,我们来修改一下代码。
Service层代码: ? 代码 SQL代码(没有加悲观/乐观锁): ? SQL代码(没有加悲观/乐观锁) 用1000个线程跑代码: ?...这是为什么呢? 一、我的思考 既然测试出来的结果是低于1000,那说明这段代码不是线程安全的。不是线程安全的,那问题出现在哪呢?...根据上面的分析,我怀疑是提问者没测试好(hhhh,逃),于是我也跑去测试了一下,发现是以提问者的方式来使用是真的有问题。...SQL执行的顺序 从打印的情况我们可以得出:多线程情况下并没有串行执行addEmployee()方法。这就导致对同一个值做重复的修改,所以最终的数值比1000要少。...总体来看,我认为思路是没有问题的,但出现上面的结果是我没考虑到的,如果知道为什么会出现这种情况的同学不妨在评论区留言告诉我。
如果有一系列好的问题,那么就可以帮助解答的人将他们所知道的内容有效地解释给我听,并指导他们告诉我我感兴趣的东西。那么我们该如何做到这一点呢? 说明你所知道的 这是我最喜欢的提问技巧之一!...虽然“为什么rkt比Docker要使用更多的磁盘空间”不怎么像是正确的问题——我差不多知道代码是如何工作的,但我不明白为什么他们那样写代码。...问答案是事实的问题 我有很多问题一开始有点模糊,如“SQL中的连接查询JOIN如何工作?”。这个问题不是很棒,因为连接查询如何工作有很多不同的部分!那么对方怎么知道我有兴趣学习的是什么?...我喜欢问那种答案是一个直截了当的事实的问题。例如,在SQL连接查询示例中,一些事实问题的答案可以是: 连接两个大小为N和M的表的时间复杂度是多少?是O(NM)吗?...如果你正在攀登一个新项目,那么回答那些正在学习你刚学完的那些内容的人的问题,可谓是巩固知识的好方法。
如果有一系列好的问题,那么就可以帮助解答的人将他们所知道的内容有效地解释给我听,并指导他们告诉我我感兴趣的东西。那么我们该如何做到这一点呢? 说明你所知道的 这是我最喜欢的提问技巧之一!...虽然“为什么rkt比Docker要使用更多的磁盘空间”不怎么像是正确的问题——我差不多知道代码是如何工作的,但我不明白为什么他们那样写代码。...问答案是事实的问题 我有很多问题一开始有点模糊,如“SQL中的连接查询JOIN如何工作?”。这个问题不是很棒,因为连接查询如何工作有很多不同的部分!那么对方怎么知道我有兴趣学习的是什么?...我喜欢问那种答案是一个直截了当的事实的问题。例如,在SQL连接查询示例中,一些事实问题的答案可以是: 连接两个大小为N和M的表的时间复杂度是多少?是O(NM)吗?...做一些研究 在我键入上面的SQL问题时,我在Google搜索框中输入了“如何实现SQL连接”。
mysql中有一种机制是表锁定和行锁定,为什么要出现这种机制,是为了保证数据的完整性,我举个例子来说吧,如果有二个sql都要修改同一张表的同一条数据,这个时候怎么办呢,是不是二个sql都可以同时修改这条数据呢...:扩展性好,没有多个分表后的复杂操作(php代码) 缺点:单个表的数据量还是没有变,一次操作所花的时间还是那么多,硬件开销大。...这个时候如果要把已有的大数据量表分开比较痛苦,最痛苦的事就是改代码,因为程序里面的sql语句已经写好了,现在一张表要分成几十张表,甚至上百张表,这样sql语句是不是要重写呢?...user表,分成了二个表,这个时候有一个问题,代码中的sql语句怎么办,以前是一张表,现在变成二张表了,代码改动很大,这样给程序员带来了很大的工作量,有没有好的办法解决这一点呢?...优点:扩展性好,并且程序代码改动的不是很大 缺点:这种方法的效果比第二种要差一点 三,总结一下 上面提到的三种方法,我实际做过二种,第一种和第二种。第三种没有做过,所以说的细一点。哈哈。
这个时候,腾讯混元大模型助手的答案就很方便了,不仅告诉我们为什么要使用字符的Unicode来辨识中文,还告诉我们可能存在的问题;甚至,还告诉我们代码的逻辑,联系上文iTotal加一后代表的具体含意。...综合看二者的回答…… 说实话,我还是更喜欢GPT4.0的回答。混元模型虽然解释了我代码想要运行的最终效果: 匹配文件扩展名是不是在限定范围内。...混元模型并没有告诉我,file.endswith()函数究竟为什么会报错。实际上,就是因为传入的参数错误,如果更改为『元组』,触发其他重载方法,并且重载方法可以解析『元组』即可。...再举个后端Java的例子,我们使用MyBatisPlus,是不是可以选择在Mapper的XML内编写SQL的方法,进行增删改查?...中小企业,日后或许就不用高成本地训练自己的模型和建模了,对于企业和个人开发,也是一片向好。如果后续价格可以合适,我相信是一款成熟、稳定的产品。
如何开发一个框架,或者如何搭建,如何设计一个框架,很难教会一个新人,本文记录一些能用文字写的方法 本文我写了很久但是我发现很难用文字来描述,如何搭建一个框架,有什么套路。...如本文最后参考里面引用的文章,我使用里面的例子来告诉大家为什么推荐从大框架开始。不知道大家有没有看过网上美术大师画画的视频,如果看过的话你们会发现,他们经常喜欢从一个局部出发画完整幅画。...那么对于此两个不同的等级的方法的设计上,就可以采用不同的命名方式,甚至要求传入不同的参数来进行区分 不同的逻辑截然不同指的是那些好混淆的逻辑,而不是让每个模块各自为政 开发时做好防逗比 按照优先级,最高的是构建不通过...如果我期望画出的是一个 10 厘米的矩形呢?如果画矩形的方法没有告诉我参数的单位,那么只能按照经验进行猜测,而如果画矩形函数有明确给定参数类型是 Pixel 类型,那么我自然就了解需要传入的是像素。...我遇到冬哥(不是这个冬哥)写过的代码如下 [Obsolete("此方法只有冬哥才能调用")] public void Foo() {
0x00 前言 如果,让我回想一下有哪些幸福快乐的工作经历,怕是很难想到。 但是,如果让我回想,有哪些痛苦不堪的工作经历,我第一个能想到的就是数据仓库的重构。...0x02 神一般的任务依赖逻辑 一个 Sql 有一千多行就算了。 请告诉我,为什么有的数据,会依赖三十多张中间表? 能加个注释吗,哥哥? 不能再加一个层次吗?...这尼玛每个中间表的维度都不一样,理解起来简直xxxxxxxx。 然后,为什么我发现,有一个中间表,依赖了一个结果表的数据??? 不对,有很多这种情况!!! 兄弟,不能有点设计文档参考吗?...最让人无语的事情是:经常有一些莫名其妙被生产出来的数据!!! 没人知道生产它的代码在哪里,调度也不知道在哪里??? 搞笑呢? 而且代码也不统一,为什么有的是用 Spark ,有的是用 Hive?...数仓重构的几个小建议 事先评估好重构的成本,老板在支持你做重构时,他可能也没接收到太多的上层压力,当他有压力的时候,就会把压力传递给你,因此事先好好评估很重要。
Service层代码: SQL代码(没有加悲观/乐观锁): SQL代码(没有加悲观/乐观锁) 用1000个线程跑代码: 用1000个线程跑代码: 简单来说: 多线程跑一个使用synchronized...这是为什么呢? 一、我的思考 既然测试出来的结果是低于1000的,那说明这段代码是非线程安全的。 不是线程安全的?那问题在哪呢!...根据上面的分析,我怀疑是提问者没测试好(hhhh,逃),于是也跑去测试了一下,发现以提问者的方式来使用synchronized是真的有问题。...这就导致对同一个值做重复的修改,所以最终的数值比1000要少。 二、图解出现的原因 发现并不是同步执行的,于是我就怀疑synchronized关键字和Spring肯定有点冲突。...总体来看,我认为思路是没有问题的,但出现上面的结果是我没考虑到的,如果知道为什么会出现这种情况的同学不妨在评论区留言告诉我。
领取专属 10元无门槛券
手把手带您无忧上云