首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员如何提一个好问题

问答案是事实的问题 我有很多问题一开始有点模糊,如“SQL中的连接查询JOIN如何工作?”。这个问题不是很棒,因为连接查询如何工作有很多不同的部分!那么对方怎么知道我有兴趣学习的是什么?...例如,在SQL连接查询示例中,一些事实问题的答案可以是: 连接两个大小为N和M的表的时间复杂度是多少?是O(NM)?还是 O(NlogN)+ O(MlogM)?...MySQL在进行连接查询之前是否始终将联结列排序作为第一步? 我知道Hadoop有时会“hash连接”——这是其他数据库引擎也使用的一个连接策略?...真诚地说出你不明白的地方 很多时候当有人向我解释某事时,他们会说一些我不明白的东西。例如,可能有人正在向我解释一些关于数据库的东西,并说“好的,我们使用MySQL的乐观锁,因此……”。...事实上,如果有人在我解释的时候不要求我澄清,我反而会担心他们不是真的有在听! 这也为问题回答者创造了在触及他们知识领域范围之外时可以承认的余地!很多时候,当我问某人问题时,如果问到他们不知道的东西。

65430
您找到你想要的搜索结果了吗?
是的
没有找到

程序员如何提一个好问题

问答案是事实的问题 我有很多问题一开始有点模糊,如“SQL中的连接查询JOIN如何工作?”。这个问题不是很棒,因为连接查询如何工作有很多不同的部分!那么对方怎么知道我有兴趣学习的是什么?...例如,在SQL连接查询示例中,一些事实问题的答案可以是: 连接两个大小为N和M的表的时间复杂度是多少?是O(NM)?还是 O(NlogN)+ O(MlogM)?...MySQL在进行连接查询之前是否始终将联结列排序作为第一步? 我知道Hadoop有时会“hash连接”——这是其他数据库引擎也使用的一个连接策略?...真诚地说出你不明白的地方 很多时候当有人向我解释某事时,他们会说一些我不明白的东西。例如,可能有人正在向我解释一些关于数据库的东西,并说“好的,我们使用MySQL的乐观锁,因此……”。...事实上,如果有人在我解释的时候不要求我澄清,我反而会担心他们不是真的有在听! 这也为问题回答者创造了在触及他们知识领域范围之外时可以承认的余地!很多时候,当我问某人问题时,如果问到他们不知道的东西。

1K40

程序员如何提一个好问题

问答案是事实的问题 我有很多问题一开始有点模糊,如“SQL中的连接查询JOIN如何工作?”。这个问题不是很棒,因为连接查询如何工作有很多不同的部分!那么对方怎么知道我有兴趣学习的是什么?...例如,在SQL连接查询示例中,一些事实问题的答案可以是: 连接两个大小为N和M的表的时间复杂度是多少?是O(NM)?还是 O(NlogN)+ O(MlogM)?...MySQL在进行连接查询之前是否始终将联结列排序作为第一步? 我知道Hadoop有时会“hash连接”——这是其他数据库引擎也使用的一个连接策略?...真诚地说出你不明白的地方 很多时候当有人向我解释某事时,他们会说一些我不明白的东西。例如,可能有人正在向我解释一些关于数据库的东西,并说“好的,我们使用MySQL的乐观锁,因此……”。...事实上,如果有人在我解释的时候不要求我澄清,我反而会担心他们不是真的有在听! 这也为问题回答者创造了在触及他们知识领域范围之外时可以承认的余地!很多时候,当我问某人问题时,如果问到他们不知道的东西。

83150

Python工匠:数字与字符串(上)

代码里出现的字面量,只要在它所处的上下文里面容易理解,就可以使用它。 比如那些经常作为数字下标出现的 0 和 -1 就完全没有问题,因为所有人都知道它们的意思。...所有人都写过这样的代码。...有时候我们需要拼接一大段发给用户的告警信息,有时我们需要构造一大段发送给数据库的 SQL 查询语句,就像下面这样: def fetch_users(...拼接技巧,使用 "WHERE 1=1" 来简化字符串拼接操作 # 区分查询 params 来避免 SQL 注入问题 statement = "SELECT id, name FROM users...然后再把结果 950400 这个神奇的数字填进我们的代码里,最后心满意足的在上面补上一行注释:告诉所有人这个神奇的数字是怎么来的。

57540

SQL 查询是从 Select 开始的

昨天我正在做窗口函数的解释说明,并且我发现自己在谷歌上搜索“你能根据窗口函数的结果进行过滤”。比如 — 你能在WHERE、HAVING或者其它地方过滤窗口函数的结果?...我可以根据窗口函数的结果进行过滤(不行!窗口函数发生在SELECT中,它发生在WHERE和GROUP BY之后) 我可以基于GROUP BY中所做的来进行ORDER BY么?(可以!...所以: 当你只想了解哪些查询是有效的,以及如何推理给定查询的结果时,可以使用此图。 你不应该使用此图来解释查询性能或任何有关索引的事情,那是一个复杂得多的问题,涉及更多变量。...4、混淆因素:列别名 有人在Twitter上指出,许多SQL实现允许你使用以下语法: SELECT CONCAT(first_name, ' ', last_name) AS full_name, count...不知道这一点令我自己着实惊讶 我写了这样一篇博文,因为当我发现这个顺序的时候非常惊讶,我以前从来没有看到过它被这样写下来 — 它基本上解释了我凭直觉所知道的,关于为什么一些查询被允许而另一些不被允许的一切

1.7K20

代码中的上下文:人工智能如何帮助我们改进文档

我无法假装知道它是如何工作的,我也不确定是否有人能完全解释它,但我的天真理解是,当你向 LLM 提出这种问题时,你并不是在寻找单词,而是在寻找一种模式。...同样,让我向我们的架构师和首席开发人员询问此类重新表述也会造成干扰。在 Unblocked 能够提供它们的情况下,我在努力更好地理解和解释我们的系统时不会受到阻碍——没有双关语!...我的问题是:你能编辑定义 Datatank 自定义查询SQL ?我相当肯定答案是肯定的,但自从我使用该功能以来已经有一段时间了,所以我询问了 Unblocked,它说不行。...我重新检查并确认确实可以编辑该 SQL,所以我将 Unblocked 的答案标记为错误,然后我再次查看了文档,果然,我们没有明确表示你可以编辑 SQL。所以我撤回了我的投诉,并向文档添加了此说明。...注意:如果您编辑源查询并按“保存”,则查询会立即运行以刷新数据,然后按照计划重复运行。 后来我问了同样的问题,得到了这个答案。 这部分是正确的。是的,你可以编辑 SQL。但不用等到下次计划更新。

5910

OOB(out of band)分析系列之DNS渗漏

利用DNS偷走数据 当说这个之前,你需要知道DNS的原理: 实际上复杂的多,是一个分级查询。先向根域名服务器查询顶级域名服务器,然后顶级域名服务器查询次级域名,这样一层层查询下来的。...上面的语句通过文件操作函数触发了win的UNC,引发了一次DNS操作,在向我们的ns服务器查询子域名ip的时候就可以捕捉到数据。...可以直接使用UTL_INADDR包(官方文档戳我),而且因为不依赖PL/SQL所以可以直接插入到子查询或者where之后。...实际问题 这个技术本质是利用UNC发起的DNS查询,所以UNC的路径不能超过128,否则会失败。所以我上面的中间变量长度都是128。同时也不能出现非法字符,否则也会失败。...如果有人有兴趣,我会全部写一遍的。

1.7K60

105-跟专家学习SQL优化-1

根据上面执行计划显示, 其实oracle优化器把改写后的SQL做了查询转换,转换后的SQL应该是下面这个样子: 看到上面这个SQL, 估计很多人就能看出问题了, 这个sql的改写,只是结果上的等价,...如果是这样, 你觉得这个SQL的执行时间还会是10毫秒? 综上分析, 这个SQL的改写效果只是在特定变量下的表现, 换一组变量, 效率可能要差很多很多. 这个SQL的正确改写方法是什么呢?...下面是我给出的改写方法, 非常简单, 只需要把t表在两个子查询中的公共条件从exists里面提取出来就可以了: 有人可能会问, 这样的or exists会不会还是走filter的执行计划?...其实oracle从11g版本开始就可以这个之前只能走filter的执行计划做查询转换, 使用的是一个叫unnest_disjunctive_subq的查询转换规则, 自动将sql转换成下面这个样子(下面其实是我的改写..., 我没看10053, 根据执行计划反推的): 如果你用的是mysql或是postgresql的数据库, 遇到这样的sql, 如果不能像oracle优化器那样做查询转换, 也可以手工改成上面这个样子,

15910

8 个不得不说的 MySQL 陷阱

另外它还是开源运动的标杆,它的伟大成就向我们展示了一个成功的公司是可以建立在开源代码之上的。 然而用过mysql的人都曾对着显示器挥舞过拳头。...为了在这个夏天躁起来,我们列举了8个抱怨开源关系型数据库的理由。下面列举的理由中不仅限于 MySQL,有一些是针对关系型数据库的。...这个表是十分高效的,它执行的规则也很好。突然一次,有人上传了一个使用了连字符的九位数邮编。或者还有可能,你得到了一位来自加拿大客户的信件,上面写有邮政编码。 这时,一切都乱了。...sql通过一系列join构建的复杂查询将开发者推入了困惑与绝望的深渊。而且存储引擎也需要以最优的方式来高效地解析join语句。开发者需要绞尽脑汁编写查询语句,然后数据库对其进行解析。...当 然,有些时候在不同的存储引擎之间切换而不必重写你的SQL是很好的,但是切换后总会带来混乱。这个表格我选择的引擎是 MyISAM 还是 innoDB 呢?或者,我决定输出的数据是CSV格式的

91050

一款让“微软爸爸杀不死”的数据库软件——生于1992的Access

你想从它当中寻找你所期望的传统数据库的一些行为?别做梦了!想要安全模型?不,这里的每个用户都可以访问所有内容。想要数据完整性?还是醒醒吧,因为根本没有记录数据库操作的日志文件。...所有这些场景都需要用到Excel不能提供的结构和数据编辑控件,这些都可以很容易地在Access数据库环境下找到。使用几张表,一些约束关系,一组小查询,一到两个报告,一个下午的时间就搞定了。...Access和它的持久生命力向我们揭示了什么? 老旧的软件系统在技术领域长久存留并不是一件令人惊讶的事。毕竟,我们现在还有人在使用COBOL。...不存在多人同时编辑数据库的危险,也不需要将其他平台上查询数据。这种场景下,一个具备完全功能的SQL Server应用程序会更好用?...对于这个应用程序的用户来说,没有一种简单的方法可以像使用Access一样,可以用他们自己的表单和报表来实现并增强它。 3.

1.1K10

使用大语言模型生成SQL Schema

我已查看了使用 LLM 生成的 regex 和 JSON 持久性,但许多人认为 AI 可以很好地处理结构化查询语言 (SQL)。...为了庆祝 SQL 的 50 岁生日,让我们来讨论一下表,并在需要时引入技术术语。但是,我不想仅仅 针对现有表测试查询。关系数据库 的世界始于 Schema。...Schema 描述了一组表,这些表相互作用以允许 SQL 查询回答有关真实世界系统模型的问题。我们使用各种 约束 来控制表如何相互关联。...我们的第一个查询:“创建一个关系数据库模式来描述书籍、出版商和作者。” 结果: 到目前为止还不错。它尚未创建 DDL,但我们可以单独询问。它在某种程度上做得更好,用英语描述了模式。...结论:LLM 确实可以创建模式 我认为这对 LLM 来说是一个巨大的胜利,因为它们将我的英语描述变成了一个受限良好的模式,然后变成了可执行的 DDL,同时还提供了解释(尽管这些解释变成了更技术性的关系细节

10710

为什么LINQ to XML的性能要优于XmlDocument?

我这人比较喜欢追根溯源,如果单从这个,总是有人会产生各种悖论,比如: 【码帅】-------- 13:52:01 确定真是LINQ高 【码奴】-------- 13:52:32...LINQ to XML 的一个最重要的性能优势(与 XmlDocument 相比)为:LINQ to XML 中的查询是静态编译的,而 XPath 查询则必须在运行时进行解释。...这个因素是性能中至关重要的,所谓”子不教,父之过“! 也就是说,LINQ to XML的查询被编译成静态链接的方法调用,这样的性能提升是巨大的。...当必须操作大型数据集合,特别是在包含一系列链接的查询或操作的程序中操作时,延迟执行可以大大改善性能。 在最佳情况下,延迟执行只允许对源集合的单个循环访问。...虽然Linq to SQL的名声不大好,但是LINQ to XML却应该是实至名归。

1.1K50

OpenAI 演讲:如何通过 API 将大模型集成到自己的应用程序中

这是一个相当正常的业务问题,当然不是我可以立即编写 SQL 就能解决的问题,但 GPT 可以。让我们运行一下。我们可以看到它正在调用 SQL 查询函数。...以你的演示为例,在你构建 SQL 查询时,如果我提出的问题导致 ChatGPT 给出了一个在语法上完成正确,但在语义上完全不正确的 SQL 查询时,该怎么办?然后我向我的用户报告一些不正确的内容。...LLM 和 langChain 参会者 2:有人尝试过做一些 LangChain ,它可以与 LangChain 一起使用?...SQL 示例就是一个很好的例子。如果有人读到这篇文章,他们对金融数据库进行 SQL 查询,并将其输入到 gpt-3.5-turbo,我们基本上就泄露了数据。...函数调用权限 参会者 7:如果我们想限制某些用户进行某些函数调用,或者像你这样在这些 SQL 查询中访问某些表,你们有函数调用的权限,人们还需要实现他们自己的

85910

网站漏洞查找渗透测试该如何入此行业

实际上这个问题有很多人跟我说,非科班可不可以?没触碰过程序编写,去培训班培训几个月可不可以?30岁了想从传统产业改行回来从业网络信息安全可不可以?...我举一个简洁明了的事例,绝大多数入门教程都是教SQL注入的判断方法and1=1,那麼:你可以概述SQL注入漏洞的实质是啥?依据系统漏洞情景的不一样都有哪些种类?依据运用方法的不一样又有那些种类?...联合查询注入又有什么关键点?黑盒子测试中怎么才能找寻SQL注入系统漏洞?白盒审计呢?依据实践经验,什么地方将会发生SQL注入系统漏洞?当你发觉了一个SQL注入,你能怎样运用?...预编译为何能避免SQL注入?它的最底层基本原理是如何的?预编译一定能避免全部SQL注入?假如不可以请举例子?你掌握ORM?她们一般怎样防御力SQL注入系统漏洞?...PHP应用PDO一定沒有SQL注入?Java应用Mybatis一定沒有SQL注入系统漏洞?如果有举例子? 怎样自动化技术发掘SQL注入系统漏洞?怎样确保以尽量少的分包量获得尽量精确的結果?

86720

Stacking Injection

前言 ​ 今天刷题又碰到了一个堆叠注入的题目,由于之前接触过一点,看了下自己博客发现没有记录,所以刚好以这个题目为例子来记录下堆叠注入的学习!...(;)就是一个sql语句的结束,举个例子 show tables; 可以看到结果 image.png 正常的得到了数据里的表名,但是如果在这一个sql语句后面再写一个sql语句我们能查得到我们想要的数据...,或者能做到我们想做到的事情?...堆叠注入用处 新建和删除表 sql语句: show tables;create table ly0n like flag; image.png 后面可以是任意正确的sql语句,都可以被执行,并得到想要的信息...题目分析 拿到题目大眼看了一下,通过payload 猜测考点是sql注入 image.png 于是就开始了常规的操作,但是在联合查询的时候发现了过滤了很多的关键字 image.png 看来是姿势不对,之前看过一些关于堆叠注入的文章

36310

两个事务并发写,能保证数据唯一

两个事务并发写,能保证数据唯一? 我先来解释下标题讲的是个啥。 我们假设有这么一个用户注册的场景。用户并发请求注册新用户。 你有一张数据库表,也就是下面的user表。...插入sql } 但这是两条sql语句,先执行查询sql,判断后再决定要不要执行插入sql。...所以,有人就想了,这两条sql语句逻辑应该是一个整体,不应该拆开,于是就想到了事务,通过事务把这两个sql作为一个整体,要么一起执行,要么都回滚。...这方案生产中能用这个方案虽然确实能保证只插入一条数据,但生产中不建议这么用,性能比较差,用了可能会被同事喷。...做这个操作的人,还会信誓旦旦,言之凿凿的说出他的理解,在我解释了几遍发现无果之后,我选择低头假装思考,然后说:"你说的有点道理,我再回去好好想想",然后默默的为数据表加上唯一索引…… 我相信对方肯定已经理解了

59440

渗透测试网站信息安全该如何学习

实际上这个问题有很多人跟我说,非科班可不可以?没触碰过程序编写,去培训班培训几个月可不可以?30岁了想从传统产业改行回来从业网络信息安全可不可以?...我举一个简洁明了的事例,绝大多数入门教程都是教SQL注入的判断方法and1=1,那麼:你可以概述SQL注入漏洞的实质是啥?依据系统漏洞情景的不一样都有哪些种类?依据运用方法的不一样又有那些种类?...联合查询注入又有什么关键点?黑盒子测试中怎么才能找寻SQL注入系统漏洞?白盒审计呢?依据实践经验,什么地方将会发生SQL注入系统漏洞?当你发觉了一个SQL注入,你能怎样运用?...预编译为何能避免SQL注入?它的最底层基本原理是如何的?预编译一定能避免全部SQL注入?假如不可以请举例子?你掌握ORM?她们一般怎样防御力SQL注入系统漏洞?...PHP应用PDO一定沒有SQL注入?Java应用Mybatis一定沒有SQL注入系统漏洞?如果有举例子? ? 怎样自动化技术发掘SQL注入系统漏洞?怎样确保以尽量少的分包量获得尽量精确的結果?

1.3K20

2019年数据科学最强入门指南

这是 2013 年的路线图,有点过时了,里面连 TensorFlow 都没有,基本没有人再参考。完全可以划掉这个图中的一些路径,前几年「数据科学」划分地过于分散,采用其他方法会更好。...Q:我以为学习数据科学是做表格查询而不是网页抓取的工作,所以我刚学完一本 SQL 的书,SQL 不是访问数据的典型方式? A:好吧,我们可以使用非结构化文本数据做很多很酷的事情。...Q:我听说过 NoSQL 这个词,跟 SQL 、大数据有什么关系? A:大数据是 2016 年的概念,已经有点过时了,现在大多数人不再使用这个术语。...A:NoSQL 代表不仅是 SQL,它支持关系表之外的数据结构,不过 NoSQL 数据库通常不使用 SQL,有专门的查询语言,简单对比一下 MongoDB 和 SQL 查询语言: ?...Q:这太可怕了,你意思是每个 NoSQL 平台都有自己的查询语言?SQL 有什么问题? A:SQL 没有任何问题,它很有价值。不过这几年非结构化数据是热潮,用它来做分析更容易。

48140

MySQL Cases-SQL导致CPU使用率100%处理

前几天客户向我咨询一条SQL,为了客户隐私屏蔽了关键字,改成自己测试环境语句 WITH tabs AS ( SELECT ROW_NUMBER() OVER(PARTITION by O_ORDERPRIORITY...SQL写法还是有问题的,我按照他的意思做了改写,我们先分析他要的语句的逻辑 按照O_ORDERPRIORITY订单属性分组,更新每组中价格不是最大的那个值,那么好,按照这个意思,我该写成如下,o_orderkey...SQL正式,前几天那个关联更新... image.png 那么这个SQL为什么这么慢呢...先说下Oracle中的解决办法,可以改写成merge into引导SQL走hash join,可以的话并且加适当的并行...SQL在MySQL中肯定是没办法执行出结果的, image.png 表中一共几十万行数据,但是由于匹配因素,关联影响到了20亿行,那么到这里这个案例就结束了 结论: MySQL并不适合OLAP数据分析型...SQL,由于是在8.0支持分析函数的情况下,在生产中执行还是要小心,他并不向Oracle那么高效,还有需要提升学习的地方 那么,对于MySQL关联更新你有什么好的建议

1K31
领券