首页
直播
壁纸
友链
搜索
1
buildadmin百度编辑器放两个只能显示一个
4 阅读
2
MySQL如何解决深度分页问题?
4 阅读
3
太原刚罚了三家,全是这个原因!你的网站可能也在危险边缘
4 阅读
4
thinkphp6 消息队列think-queue
3 阅读
5
cURL error 60: SSL certificate problem: unable to get local issuer certificate
2 阅读
服务器运维
后端技术
前端技术
梯子
数据库
小程序
登录
搜索
标签搜索
fastadmin
服务器
codex
buildadmin
小程序
mysql
沿途的风景
累计撰写
18
篇文章
累计收到
0
条评论
首页
栏目
服务器运维
后端技术
前端技术
梯子
数据库
小程序
页面
直播
壁纸
友链
搜索到
18
篇与
» admin
的结果
2026-07-22
太原刚罚了三家,全是这个原因!你的网站可能也在危险边缘
上周和一个创业的朋友吃饭,他跟我吐槽说最近被"查"了。我问怎么回事,他说网站做了ICP备案,以为就完事了,结果公安网安找上门来,要求办网络安全备案。"就那么个小网站,又不是什么大平台,谁会来攻击?"——他当时就这么想的。结果呢?行政警告处罚,企业信用还背了个记录。这种事,现在越来越多了。太原刚罚了三家,全是这个小问题今年4月,太原市公安局小店分局在日常检查中,发现三家涉网企业完成了ICP备案、也联网运行了,但就是没在规定期限内办理公安机关的网络安全备案。结果呢?公安依据《计算机信息网络国际联网安全保护管理办法》,对这三家全部作出行政警告处罚。警告听起来不重?先别急着松口气。我认识一个做本地生活服务的初创公司,老板跟我说的情况更"刺激"——网站上线半年多,觉得备案太麻烦就拖着没办。结果被查到后,公安要求停机整改,整整关了15天。你知道15天对一家靠网站接单的公司意味着什么吗?直接经济损失超过30万。你算算,备案才花多少钱?被关站亏多少钱?备案这件事,很多人搞混了我接触过不少企业主,发现大家普遍有个误区——把"ICP备案"和"网络安全备案"当成一回事。真不是。工信部的ICP备案,解决的是"你有没有资格在互联网上开门营业"的问题。公安的网络安全备案,解决的是"你的网络安全措施做到位没有"的问题。简单说:ICP备案是"准生证",网络安全备案是"安全体检报告"。光有准生证,体检报告不合格,一样要出事。那到底哪些企业需要办网络安全备案?简单粗暴地讲:只要你有个网站、APP、小程序对外提供服务,并且涉及到用户注册、数据存储这些功能,基本上就跑不掉。具体来说:做了网站想让人访问的开发了APP让用户下载的运营小程序、公众号接商机的收集了用户手机号、身份证信息的这些全都算涉网企业,全都得办。不备案的后果,不是吓你我知道很多人还是抱着侥幸心理:"全国这么多网站,公安查得过来吗?"能理解。但现实是:第一,云服务商已经开始替你"把关"了。现在主流云服务商、CDN平台接入时,会自动校验备案状态。你的域名没完成公安备案?DNS解析直接暂停,网站打都打不开。APP、小程序也一样,应用市场上架审核时会强制查验公安备案编号,缺了就是上不去。第二,被查到就是真金白银的损失。法律条文我不念了,直接说实际后果:警告:第一次被发现,通常是警告整改通知:给你几天时间补办罚款:整改不到位?《网络安全法》第五十九条写得清清楚楚:不履行网络安全保护义务的,罚款1万到10万,直接负责人个人还要被罚5千到5万停机整顿:最狠的——最长6个月强制关站。对于纯线上业务的公司,这等于直接宣判死刑刑事责任:如果因为没备案导致数据泄露、被攻击造成重大损失,相关责任人可能面临刑事追责有人觉得这些是极端情况。那我告诉你:太原警方现在已经把这类检查列入日常工作了,不是运动式执法,是常态化。怎么办?30天内搞定好消息是,现在办备案比以前方便多了。核心要求只有一条:网络正式联通之日起,30日内必须完成备案。流程也不复杂:第一步:准备材料企业营业执照法定代表人身份证安全负责人身份证域名证书网络安全管理制度(需要加盖公章)第二步:网上提交登录全国互联网安全管理服务平台(beian.mps.gov.cn),按流程填写信息、上传材料。第三步:等待审核审核周期一般在10-15个工作日,通过后你会收到备案编号。几点提醒:材料里需要加盖公章的,别用复印件或没盖章的,审核直接退回企业名称、法定代表人这些信息,必须和营业执照一字不差备案完成后,如果公司改名、换法人、换地址,记得15日内更新信息域名不用了要注销备案,否则被人抢注用于违法活动,你作为原备案主体还得背锅,这个很重要,很重要,很重要!!!写在最后说了这么多,不是要制造焦虑。备案这件事,本质上是在帮你——帮你的网站更安全,帮你的公司不踩红线,帮你在和客户合作时不用解释"我们为什么没证"。很多企业把合规当成负担,觉得是在"交保护费"。但换个角度想:合规做得好,竞争对手踩坑的时候,就是你的机会。你的企业网站、APP、小程序,都办过网络安全备案了吗?如果还没办,现在打开电脑,30天倒计时——别等被查了才后悔哦,只是没想到有一天公安网备也成为了必要的一环,不知以后是否还有其他也未可知~~~好了,有问题留言反馈吧。
2026年07月22日
4 阅读
0 评论
0 点赞
2026-07-19
MySQL如何解决深度分页问题?
在 MySQL 开发中,除了计数场景,深度分页(即 LIMIT offset, size 中 offset 值极大的分页查询)也是高频遇到的性能问题。比如"查询第1000页数据,每页10条"(LIMIT 9990, 10),常会出现查询缓慢的情况。下面详细讲解深度分页的问题根源及解决方案。1. 深度分页的问题根源先明确常规分页的实现方式:使用 LIMIT offset, size,其中 offset 表示跳过前 N 条数据,size 表示取 N 条数据。问题核心: 当 offset 极大时(如 9990),MySQL 需要先扫描并跳过前 9990 条数据,再取 10 条数据。即使查询条件有索引,也需要遍历索引到第 9990 条位置,才能定位到目标数据,导致 IO 开销大、查询效率低。示例(低效查询):-- 查询第1000页数据,每页10条,offset=9990 SELECT id, name FROM test_table LIMIT 9990, 10; -- 问题:MySQL需扫描前9990条数据并跳过,仅返回最后10条,资源浪费严重2. 解决方案(按适用场景排序)方案1:基于主键/索引排序+条件过滤(推荐,适用大部分场景)核心思路: 利用主键或有序索引的连续性,通过 WHERE 条件直接定位到"上一页最后一条数据",替代 offset 跳过数据。要求查询结果必须按主键或有序索引字段排序。实现步骤:分页查询时,记录上一页最后一条数据的主键/索引字段值(如最后一条数据的 id=9990);下一页查询时,通过 WHERE 主键 > 上一页最后主键 直接过滤前 9990 条数据,再用 LIMIT size 取数。示例(优化后查询):-- 第1页查询(无offset,直接取前10条) SELECT id, name FROM test_table ORDER BY id ASC LIMIT 10; -- 记录第1页最后一条数据的id=10 -- 第2页查询(通过id>10过滤前10条,无需offset) SELECT id, name FROM test_table WHERE id > 10 ORDER BY id ASC LIMIT 10; -- 记录第2页最后一条id=20 -- 第1000页查询(直接过滤前9990条,效率极高) SELECT id, name FROM test_table WHERE id > 9990 ORDER BY id ASC LIMIT 10;优点: 利用索引快速定位,无需扫描跳过的数据,查询效率稳定且高效缺点: 仅支持"下一页"查询,不支持直接跳转到任意页(如直接跳第1000页,需知道第999页最后一条的 id)方案2:游标分页(适合滚动加载场景)核心思路: MySQL 的 CURSOR(游标)本质是一个指向查询结果集的指针,可通过游标逐页读取数据,避免 offset 的低效扫描。适合"滚动加载更多"(如 APP 下拉加载)的场景,不支持跳页。实现步骤:-- 1. 声明游标(指定查询条件和排序方式) DECLARE cur_page CURSOR FOR SELECT id, name FROM test_table ORDER BY id ASC; -- 2. 打开游标 OPEN cur_page; -- 3. 读取数据(每次读取10条,即一页) FETCH cur_page INTO @id, @name; -- 逐行读取,可循环读取10条作为一页 -- 4. 关闭游标 CLOSE cur_page;优点: 适合大量数据的滚动加载,效率稳定缺点: 不支持直接跳页,语法较复杂,需在存储过程中使用方案3:预计算汇总表(适合静态/低频更新数据)核心思路: 如果数据是静态的(如历史订单、归档数据)或更新频率极低,可提前预计算分页所需的"分页标记"(如每10条数据的最大主键),存储在汇总表中。查询时直接从汇总表获取目标页的标记,再查询主表数据。实现示例:-- 1. 创建汇总表(存储每页最后一条数据的id和页码) CREATE TABLE page_summary ( page_num INT PRIMARY KEY, -- 页码 last_id INT -- 该页最后一条数据的id ); -- 2. 预插入数据(可通过定时任务更新) INSERT INTO page_summary VALUES (1, 10), (2, 20), ..., (1000, 10000); -- 3. 查询第1000页数据(先查汇总表,再查主表) SELECT last_id FROM page_summary WHERE page_num = 999; -- 得到第999页最后id=9990 SELECT id, name FROM test_table WHERE id > 9990 ORDER BY id ASC LIMIT 10;优点: 查询速度极快,适合大数据量静态数据缺点: 不适合动态更新数据,需维护汇总表(增加存储和维护成本)方案4:限制分页深度(业务层面优化)核心思路: 从业务角度限制用户的分页深度,避免用户查询过深的页码。比如"最多支持查询前100页数据",超过则提示"数据过多,请缩小查询范围"。实现示例:-- 限制offset最大值为9990(即最多100页) SELECT id, name FROM test_table WHERE offset <= 9990 LIMIT #{offset}, #{size};优点: 简单易实现,从根源减少深度分页查询缺点: 有业务局限性,不适用于必须支持深分页的场景(如后台数据导出)3. 方案选择总结方案适用场景核心优势局限性主键/索引条件过滤大部分动态数据分页(如列表查询)效率高、实现简单、兼容性好不支持直接跳页游标分页APP滚动加载、大量数据逐页读取效率稳定、适合大数据量不支持跳页、语法复杂预计算汇总表静态/低频更新数据(如归档、报表)查询速度极快需维护汇总表、不支持动态数据限制分页深度业务允许限制分页范围(如前台列表)实现简单、无性能开销业务局限性大补充提示: 深度分页优化的核心是"避免扫描跳过无关数据",无论哪种方案,都需确保查询条件中的排序字段有索引(如主键默认有索引),否则仍会出现全表扫描,优化失效。
2026年07月19日
4 阅读
0 评论
0 点赞
2026-07-19
MYSQL和POSTGRESQL怎么选?看完这篇就懂了
先搞懂:MySQL和PostgreSQL的核心差异如果把数据库比作"工具箱",MySQL像个"经济适用的老伙计"——够用、稳定、上手快,适合大多数基础需求;而PostgreSQL更像个"全能工程师",功能更灵活、扩展性更强,适合想"玩出花"的场景。具体差异主要在三点:1. 数据类型:灵活度差了一个LEVELMySQL的字段类型比较"保守",常用的VARCHAR、INT、DATETIME都能搞定,但遇到复杂需求(比如存JSON格式的标签、数组类型的分类)就有点吃力——虽然MySQL 5.7后支持了JSON字段,但本质是存文本,查询效率低,还没法直接对JSON里的内容建索引。PostgreSQL则像个"数据百宝箱":除了基础类型,它原生支持JSONB(二进制优化的JSON,能直接索引)、ARRAY(数组)、RANGE(时间/数值范围)甚至地理信息类型(GEOMETRY)。Halo博客里常见的"自定义文章元数据"(比如给文章打多个标签、存阅读量趋势),用PostgreSQL的JSONB存,查询时直接->>取字段,效率比MySQL高很多。2. 并发性能:多用户协作更丝滑博客最怕啥?博主和协作者同时改文章,结果"谁的版本覆盖了谁"。这涉及到数据库的"并发控制"。MySQL靠"行锁"解决冲突:你改一行,这行就被锁住,其他人得等。高并发下容易卡成"排队改稿"。PostgreSQL用的是"MVCC"(多版本并发控制):你改数据时,系统自动存一个旧版本;别人读的时候直接读旧版本,你改完再替换。读不挡写,写不挡读,多人同时编辑Halo博客,几乎感受不到延迟。3. 扩展能力:POSTGRESQL更"能折腾"Halo的魅力在于"可定制"——从主题到插件,很多人会想加新功能(比如给文章加地理位置标签、用图表统计阅读量)。这时候数据库的"扩展性"就关键了。MySQL的扩展主要靠插件,但数量少且功能集中(比如慢查询监控);PostgreSQL的插件生态像"应用商店":地理信息插件PostGIS、全文检索增强插件zhparser(中文分词)、甚至机器学习插件都能装。Halo如果后期想加"附近文章推荐""智能标签"这类功能,PostgreSQL几乎能无缝支持。Halo为啥更推荐PostgreSQL?回到Halo本身,它是个"轻量但长情"的博客系统——你可能从个人记录用到团队协作,从几篇文章写成几百篇。这时候PostgreSQL的优势会更明显:自定义字段友好:Halo支持给文章加自定义字段(比如"来源""阅读难度"),用PostgreSQL的JSONB存这些字段,既能灵活扩展,又能高效查询(比如按"阅读难度=中等"筛选文章)。多用户协作不卡顿:博主+编辑+评论管理员的多角色场景,PostgreSQL的MVCC能避免"改稿打架",编辑体验更流畅。长期稳定有保障:PostgreSQL的ACID事务更严格(比如转账操作"要么全成功,要么全回滚"),数据一致性比MySQL更可靠。毕竟博客数据是"数字资产",稳定比"够用"更重要。总结:按需选,但HALO更适配POSTGRESQL如果是纯个人博客,文章少、功能简单,MySQL完全够用(毕竟安装配置更省事);但如果想让Halo"长大"——加自定义功能、多人协作、未来扩展,PostgreSQL的灵活度和稳定性会更适配。毕竟,博客是"写给未来的自己"的,选个能陪你"折腾"的数据库,才不算辜负那些深夜敲字的灵感呀~(注:Halo官方文档对两种数据库均支持,但社区反馈PostgreSQL在复杂场景下表现更优,可根据需求选择。)
2026年07月19日
1 阅读
0 评论
0 点赞
2026-07-19
网站被 CC 攻击了?别慌,教你几招接地气的防护办法
今天本来想安安静静写个教程的,结果早上起来发现博客访问慢得像老牛拉破车。打开后台一看,好家伙,CC 攻击来了,不要问我哈,我也想知道为啥偏偏挑我这个小破站下手。咱这博客一共就 800 来篇文章,每天正常访问也就几百 IP,也不知道攻击者是咋想的,难道是想测试一下我的服务器抗不抗揍?哈哈哈~~~先说说啥是 CC 攻击吧通俗易懂的解释就是:有一群"机器人"假装成正常用户,不停地刷新你的网站,把你的服务器资源耗光,让真正想访问的人打不开网站。就像你开个小卖部,来了一群人只逛不买,还把过道堵死了,真正想买东西的顾客进不来,是不是这个理儿?我这个"栗子"是不是很恰当,哈哈哈~~~怎么确定是被攻击了?网站访问变慢了,平时打开页面 1 秒以内,今天直接 5 秒+甚至更久。这时就不用怀疑了。还有就是服务器 CPU 飙升,如果你平台有查看运行状态的好习惯就能看出来,毕竟平时 10% 左右,今天直接 90%+,是吧。还可以参考web日志里全是重复请求,这个就需要你回看日志了,打开 access.log 一看,好家伙,同一个 IP 几秒钟请求几百次,不会看也没关系,访问变慢就够了哈。我的应对办法(亲测有效)上 CDN(免费!)这个真的是神器,免费的 CDN 还能防 CC。配置也简单:去 cloudflare.com 注册个账号(不要钱)把你的域名 DNS 改到他们家开启"Under Attack Mode"(攻击模式)开启之后,访问网站会先验证一下是不是真人,机器人基本就拦住了。缺点:国内访问速度可能会慢一丢丢,但总比打不开强吧?当然了,你可以使用国内的CDN,比如腾讯云和阿里云等厂商的"边缘加速",效果很是牛,但是,对嘛肯定有但是的啊,域名必须备案,否则不行。我就在用,你可能会问那为什么用了还被攻击呢?呵呵,你猜呢?有没有可能我正在调试页面代码,不得已暂时关闭了CDN然后恰巧,被攻击了呢?哈哈,编剧都不敢这么写剧本哈!但是我就遇上了。。。WEB服务器 NGINX 限流如果你用的是 Nginx,加上这个配置:当然了如果你不会代码,还是别改了,毕竟配置文件差一个标点都可能崩溃,如果你实在想折腾下,就做好备份吧。# 限制每个 IP 每秒最多 10 个请求 limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; # 在 server 块里应用 location / { limit_req zone=one burst=20 nodelay; # 其他配置... }这段话的意思是:每个 IP 每秒最多允许 10 次请求,超过的就排队,排不上的直接拒绝。可以设置的宽松一点,另外如果你选择了 CDN 那就可以忽略这个配置了,现在的 CDN 基本都有免费的防护,毕竟你能想到了,人家是专业的早就想到了。注意:别设置太严格,不然正常用户也可能被误伤,那就尴尬了。直接封 IP如果攻击规模不大,可以直接在防火墙封掉缺点:攻击者可以换 IP,治标不治本。但是能简单的防一防,仅仅是基本的哈~还是那句话,上了 CDN 基本都解决了,除非大流量攻击,这个是没有办法的需要花费"亿点点"的费用。毕竟免费的流量有限制哈~
2026年07月19日
1 阅读
0 评论
0 点赞
2026-07-05
buildadmin百度编辑器放两个只能显示一个
刚刚试了下,是因为两个编辑器要去后台获取两次配置,而相同的请求会被拦截,导致获取不到,直接把从后台获取到的配置复制过来,不使用接口去获取就可以了还有一种方式是在请求体中增加一个随机字符串即可将两个请求识别为不同的请求
2026年07月05日
4 阅读
0 评论
0 点赞
1
2
...
4
0:00