- 博客(101)
- 收藏
- 关注
原创 PHP如何利用post与get方式传值接收数据
文章中介绍的几种常用的获取 GET/POST 参数的方法,都能够满足我们日常网站对获取或者发送get/post参数的需求,根据实际需求和项目结构选择合适的方法,才是最佳的策略。我们可以通过不同的使用方法来满足我们网站程序开发的需要。每一种方法都有他的优缺点和用处,对于站内、站外、简单、复杂、普通、敏感数据的处理方式应该综合考虑、权衡利弊后进行选择。
2024-02-19 16:56:34 2337
原创 MySQL:为什么明明创建了索引还是走了全表扫描
为了解决线上的慢查询已经创建了索引,但是却还是走了全表扫描,甚至在测试环境能够正常运行,但是到了线上却出现了不一样的表征。
2023-12-26 11:41:06 2954
原创 MySQL为什么不建议使用DELETE 删除数据?
在工作当中执行数据库删除的时候一定要慎重再慎重,建议每次进行数据删除的使用最好数据表的备份工作,这样就会大大减少你删除跑路的几率。很多时候不要过于相信自己的动手能力,老虎还有打盹的时候,万一手滑了呢。尽可能养成好的数据库运维习惯,这样会让自己少跌跟头,你的事业才会更加顺利。原文。
2023-09-06 16:21:15 706
原创 Laravel chunk和chunkById的坑
数据库引擎为innodb。表结构简述,只列出了本文用到的字段。字段类型注释idint(11)IDtypeint(11)类型mark_timeint(10)标注时间(时间戳)索引,也只列出需要的部分。索引名字段PRIMARYidmark_time使用 chunkById 或者 chunk 方法的时候不要添加自定义的排序,chunk和chunkById的区别就是chunk是单纯的通过偏移量来获取数据,chunkById进行了优化,不使用偏移量,使用id过滤,性能提升巨大。
2023-09-02 17:11:06 1193
原创 MySQL 中的 distinct 和 group by 的区别
group by和distinct都能使用索引,效率相同。distinct效率高于group by。原因是distinct和group by都会进行分组操作,但group by可能会进行排序,触发filesort,导致sql执行效率低下。
2023-05-08 12:21:47 1897 1
原创 Redis 实战篇:巧用 Bitmap 实现亿级海量数据统计
在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合。通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万、千万级别的用户数量,或者千万级别、甚至亿级别的访问信息。所以,我们必须要选择能够非常高效地统计大量数据(例如亿级)的集合类型。如何选择合适的数据集合,我们首先要了解常用的统计模式,并运用合理的数据类型来解决实际问题。本文将由二值状态统计类型作为实战篇系列的开篇,文中将用到以外的拓展数据类型Bitmap来实现。文章涉及到的指令可以通过运行调试。
2023-05-04 18:42:16 1725
原创 MySQL查询分组Group By原理分析
having子句用于分组后筛选,where子句用于行条件筛选having一般都是配合group by 和聚合函数一起出现如(where条件子句中不能使用聚合函数,而having子句就可以。having只能用在group by之后,where执行在group by之前。
2023-04-15 18:30:50 1503
原创 Laravel框架ORM新特性
Laravel是国内PHP开发使用比较广泛的一个框架,最近发现一个ORM新特性(可能官方文档里说了但我没发现)。
2022-11-15 10:39:17 617 2
原创 Laravel快速接入JWT用户认证(多用户认证)tymon/jwt-auth
JWT 是 JSON Web Token 的缩写,它是一个规范,让用户和服务器之间传递安全可靠的信息。
2022-11-11 10:30:56 3375 5
原创 PHP 自定义参数校验工具Validator
PHP服务端校验客户端请求传递的参数,做参数验证时有许多弊病。通过归纳整理,自定义了一个参数校验工具类Validator。
2022-11-02 15:17:40 1147
原创 PHP命令行脚本接收传入参数的三种方式
argv$argc通常PHP都做http方式请求了,可以使用GET、POST…方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务。这就涉及到在shell命令下如何给php传参的问题,通常有三种方式传参。............
2022-08-28 14:54:41 2851
原创 Linux环境安装Nginx并加入Service
在Linux上安装好nginx后,除了通常需要配置的nignxconf文件外,将nginx加入service系统服务可以更便捷的管理nginx服务。
2022-08-01 14:56:55 1237
原创 MySQL Varchar前缀索引的一个细节
也就是说,对于Innodb来说,redundant或者compact类型的行格式,默认最大前缀索引长度是767;在MySQL中,前缀索引的长度是有一定限制的。
2022-07-21 16:17:39 1203 2
原创 MySQL插入数据insert ignore和replace into
MySQL中插入数据,如果插入的数据在表中已经存在(主键或者唯一键已存在),使用insertignore语法可以忽略插入重复的数据。如果业务逻辑需要插入重复数据时自动忽略,不妨试试MySQL的insert ignore功能。.........
2022-07-21 14:22:18 1048
原创 PHP生成器的使用yield性能优化
听着高大上的名字,感觉像是创造什么东西的一个功能,实际上,生成器是一个用于迭代的迭代器。它提供了一种更容易的方式来实现简单的对象迭代,相比较定义类实现Iterator接口的方式,性能开销和复杂性大大降低。...
2022-07-21 11:26:28 1946
原创 文件夹下搜索匹配文件或目录 glob()
经常有这样一个场景,有一个文件夹pictures,里面有各种后缀的图片。想取出全部.png后缀的图片该怎么处理呢。
2022-07-21 09:29:47 168
原创 Redis内存模型讲解
Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如1、估算Redis内存使用量。目前为止,内存的使用成本仍然相对较高,使用内存不能无所顾忌;...
2022-07-20 12:05:02 1136
原创 深入理解 MySQL 执行过程及执行顺序
MySQL在我们的开发中基本每天都要面对的,作为开发中的数据的来源,MySQL承担者存储数据和读写数据的职责。因为学习和了解MySQL是至关重要的,那么当我们在客户端发起一个SQL到出现详细的查询数据,这其中究竟经历了什么样的过程?MySQL服务端是如何处理请求的,又是如何执行SQL语句的?本篇博客将来探讨这些问题。......
2022-07-19 17:58:33 274
原创 SQL优化方案
在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。...
2022-07-18 16:22:11 216
原创 根据经纬度计算两点之间的距离
在我们平时使用美团,饿了么等app进行订餐,或者使用猫眼进行订电影票的时候,都有一个距离的排序,表明该家店距离我们当前的位置,这种基于地理位置的服务,统一被称为LBS(LocationBasedService),而LBS的实现则是借助于GIS,WC(无线通信)等信息技术来实现。另外,还有一种方式是Vincenty’sformulae,该方式也是用于计算球体表面两点之间距离的方式,而它所基于的就是地球是扁球体的形状,因此这种方式比假设地球是球体的方式应该更加准确,但实现起来比较麻烦。.........
2022-07-15 11:16:48 11497
原创 根据经纬度查询距离并按距离进行排序
数据库有个表,存的地址及其经纬度,想要查询每个地址距当前位置(经纬度)的距离(单位米)并根据距离进行排序。
2022-07-15 10:42:01 1806 4
原创 MySQL慢查询的12个原因
很多时候,我们的慢查询,都是因为没有加索引。如果没有加索引的话,会导致全表扫描的。因此,应考虑在where的条件列,建立索引,尽量避免全表扫描。
2022-07-13 15:14:37 2880
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人