|
最新文章
|
知识管理交流
→『 技术文档交流 』
本版文数:12329 今日文数:6636
|
|
在复杂SQLServer项目中,开发者总会面临这个经典难题:该选择临时表、表变量还是公用表表达式(CTE)?本文将通过性能实测、使用场景与隐藏特性分析,助您做出明智决策。1.临时表:大数据集处理的扛把子临时表作为临时存储介质驻留在tempdb中,支持完整表操作:CREATETABLE#TempUsers(UserIdI...
|
|
作为开发者,日常和JSON打交道的场景实在太多了——接口调试、数据解析、日志查看……但每次面对一堆挤成一团的JSON字符串,或者手写的JSON格式不规范导致解析报错,都忍不住想吐槽。市面上虽然有不少在线JSON工具,但要么广告满天飞,要么功能太复杂,要么需要频繁切换网页,用起来总觉得不太顺手。
于是干脆自己动手,基于...
|
|
做运维或后端开发的同学,大概率都遇到过这样的糟心场景:用户反馈“下载文件到一半就断了”,自己用wget或curl测试,果然看到屏幕上反复出现HTTP206PartialContent,文件下了又断、断了又重试,折腾半天也拿不到完整文件。很多人第一反应是“客户端网络有问题”“用户操作不当”,但其实,这锅多半要Nginx代...
|
|
很多人写SQL,一碰到“分组后再取明细”“每组TopN”“累计求和”“同比环比”“取上一条/下一条记录”这类需求,就开始疯狂套子查询。结果通常是这样的:•SQL越写越长•逻辑一层套一层•自己第二天都不想看•性能还未必好说得难听点,很多子查询不是业务复杂,而是写法原始。如果你还在靠子查询硬凑这些分析型需求,那窗口函数大概...
|
|
UNION和UNIONALL,差了一个ALL。这个ALL省掉的,不只是一个关键字——是一整趟排序去重的成本。两个查询,逻辑一模一样:SELECTuser_idFROMordersUNIONSELECTuser_idFROMusers;SELECTuser_idFROMordersUNIONALLSELECTuser_i...
|
|
很多数据库问题,并不是“高并发架构”这种听起来很吓人的大场面搞出来的。真正把库拖慢、把业务搞崩、把同事逼疯的,往往是一些看起来没什么问题、实际上非常致命的SQL习惯。这些写法在测试环境里也许还能跑,在数据量小的时候也许没感觉,但一旦表变大、业务变复杂、并发上来,代价就会立刻显现:慢查询、锁表、索引失效、脏数据、误删、甚...
|
|
很多人一看到SQL跑得慢,第一反应就是:数据量太大了。这话有时候没错,但更多时候,它只是个看起来很合理的借口。真实情况往往更扎心:表不算大,机器也还行,索引甚至都建了,SQL还是慢。那问题多半不在“数据量”,而在SQL写法把数据库优化器整不会了。说得更直接一点:慢SQL,大多数不是“扛不住”,而是“写得烂”。今天这篇,...
|
|
如果你学SQL时总觉得窗口函数“看起来懂了,一写就废”,那不是你笨,是很多教程都没讲人话。它们喜欢先甩给你一串语法:OVER(PARTITIONBY...ORDERBY...),然后再贴几个例子,最后你记住了ROW_NUMBER(),却还是不知道什么时候该用、为什么好用。这一篇不绕弯,直接把SQL窗口函数最常用、最容易...
|
|
做数据分析,最常见也最容易说混的三个词,就是:同比、环比、累计值。很多人平时都在用,但一到自己写SQL就容易乱:到底该跟谁比、在哪个粒度上比、什么时候该先聚合、什么时候该上窗口函数。这一篇不整虚的,直接把这三个概念和最常见SQL写法讲透。一、先把概念讲人话1.同比同比,就是和去年同期比。比如:•2026年3月销售额,对...
|
|
SQLSERVER数据库,在断电或文件损伤等原因,容易置疑,这是国内管理软件商比较头疼的问题。我在ERP管理系统的开发与服务客户的这十多年中,处理过的数据库置疑的情况,应该有几十次之多。至于原因嘛,一是因为服务的客户量大;二是各地代理商遇到数据库置疑搞不定,也提交到我这里,让我来处理;三是因为时间跨度长。SQLSERV...
|
|
上周那篇nginx.conf配置指南,我们把location匹配规则讲清楚了。配完之后,我信心满满地把服务从1台扩到3台,心想这下高可用了。结果活动当天,一台服务器挂了,用户开始报错。查了半天才发现,原来我踩了一堆坑。今天这篇文章,就聊聊我当时遇到的几个坑,以及后来怎么填的。坑点一:配了upstream,Nginx还是...
|
|
上周帮一个同事排查问题,他说上传一个8M的图片报413,问我是不是Nginx出bug了。我一看,client_max_body_size默认是1M,改到100M就好了。但他说改完了还是不行——原来后端的PHP也没配,upload_max_filesize还是2M。一个413,折腾了他一下午。这件事让我想把Nginx常见...
|
|
做后端开发的人,大概都经历过这样的场景:项目做了大半年,数据库里有几十张表,字段又多又杂。交接的时候对方问:“这张表是干什么用的?”这个字段为什么要允许NULL?你支支吾吾翻代码,查了半天也说不清楚。更头疼的是,每次新来一个项目,首先要花大量时间熟悉数据库结构——字段什么意思、表之间什么关系、存储过程逻辑是什么。文档要...
|
|
你写了很多SQL,用CASEWHEN的方式,大概只有两种:CASEWHENcol=ATHEN类目AWHENcol=BTHEN类目BELSE其他END然后就没了。如果是这样,你可能低估了CASEWHEN功力。01UNIONALL替代:三遍扫描→一遍扫描先看一个场景。业务方要一张报表,按用户等级分层看数据:--等级分布:高...
|
|
如果你做过.NET邮件功能,大概率踩过这些坑:IMAP收件时服务器突然发了条没预料到的响应,库直接报错崩溃;POP3下载大邮件时内存暴涨,因为MIME解析先把整个消息塞进字符串再慢慢处理;发件时中文标题乱码、附件名变乱码、HTML邮件格式跑偏;对接Gmail时普通密码登录直接被拒,必须上OAuth2,但大多数库压根不支...
|
|
开头上周帮朋友处理一个需求:把上百份PDF合同里的关键信息提取出来,汇总到Excel里。他问我:“这个用Python做方便吗?”我说:“用.NET吧,有个库叫PdfPig,几行代码就能提取文本。”他愣了一下:“.NET还能处理PDF?”能。而且比你想象的优雅得多。今天给大家介绍这个我私藏了很久的开源项目——PdfPig...
|
|
|
当你的表单没有输入完成的时候,提交按钮是灰色的,不能提交,你必须按要求输入必填的项,此时提交按钮才能恢复使用,虽然我们可以用js判断表单的完整性,但各有各的用法和思路,因此这样做也未尝不可。<title>输入完成才能提交</title><scriptlanguage=javascript>functioncheck()...
|
|
一款仿淘宝支付宝网站的用户注册表单效果,无刷新检测用户名、密码,还有一个钩选用户注册协议的选项,用户必须点击用户注册协议的复选框之后才能点击提交,用到了几个gif小图,请自行下载。<title>仿支付宝注册表单效果</title><metahttp-equiv=content-typecontent=text/html...
|
|
细心、注意发现的人都会注意,有不少网站为了提高表单的输入效率,让input输入框在输入时变为立体的,这样看的更清楚,也就是当鼠标点击输入框后会激活js函数,调用对应的css代码,仔细看一下代码就明白了。<metahttp-equiv=Content-Typecontent=text/html;charset=gb231...
|
|
一个简单方法实现了css滑动门菜单,正研究滑动门的朋友请关注一下,这个代码可以让你了解滑动门的实现过程,没有用什么复杂的方法,只用简单配合js,就完成了一个流行的滑动导航。<title>如此简单就实现了css滑动门</title><styletype=text/css>*ulliul,li.tabs,.tabs_act...
|
|
functionhtml2ubb(str)ifstr<>andnotisnull(str)thendimresetre=newregexpre.ignorecase=truere.global=truere.pattern=(on(loadendifendfunction
|
|
|