后端
smallmww
一枚不断学习的程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
什么是悲观锁,乐观锁?
乐观锁总是假设最好的情况,认为共享资源每次被访问的时候不会出现问题,线程可以不停地执行,无需加锁也无需等待,只是在提交修改的时候去验证对应的资源(也就是数据)是否被其它线程修改了(具体方法可以使用版本号机制或 CAS 算法)。原创 2023-11-24 15:11:15 · 320 阅读 · 0 评论 -
drop、delete与truncate的区别?
Truncate命令用于删除表中的所有数据,但保留表的结构。换句话说,表的结构将保持不变,表中原有的索引、约束等将保留。Delete命令用于删除表中的数据,可以根据条件删除。Delete语句会触发trigger,如果数据被删除后需要执行某些特定的操作,可以通过trigger来实现。另外,Delete操作可以回滚,如果在删除数据后发现误删或需要回滚,可以进行回滚操作。Drop命令用于删除整个表,包括表的结构和数据。使用此命令要非常小心,因为一旦表被删除,将无法恢复。原创 2023-11-24 14:46:38 · 186 阅读 · 0 评论 -
php中使用cdn
3. 修改静态资源链接:将应用中需要加速的静态资源(如图片、CSS 文件、JavaScript 文件)的链接替换为 CDN 的链接。4. 验证 CDN 加速效果:通过访问 CDN 的加速域名,验证静态资源是否成功被 CDN 加速。1. 选择合适的 CDN 服务提供商:根据需求和预算选择合适的 CDN 服务提供商,例如阿里云CDN、腾讯云 CDN、Cloudflare 等。7. 监控和调优:使用 CDN 服务提供商提供的监控工具,实时查看 CDN 加速效果、缓存命中率等指标,并根据数据进行调优和优化。原创 2023-11-24 14:29:37 · 703 阅读 · 0 评论 -
mysql的alter怎么使用?
ALTER TABLE 表名 ADD FOREIGN KEY (列名) REFERENCES 关联表名(关联列名);ALTER TABLE 表名 ADD PRIMARY KEY (列名);ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型;ALTER TABLE 表名 MODIFY 列名 新数据类型;ALTER TABLE 表名 DROP COLUMN 列名;ALTER TABLE 旧表名 RENAME TO 新表名;ALTER TABLE 表名 ADD 列名 数据类型;原创 2023-11-24 14:24:31 · 672 阅读 · 0 评论 -
常见的数据结构有哪些?
数据结构分为和。数据的逻辑结构主要分为和。原创 2023-11-17 22:21:25 · 646 阅读 · 0 评论 -
PHP实现在数据库百万条数据中随机获取几条记录的方法
数据库中(mysql)随机获取几条数据很简单,但是如果一个表的数据基数很大,比如一千万,从一千万中随机产生10条数据,那就相当慢了,如果同时一百个人访问网站,处理这些个进程,对于一般的服务器来说,肯定是要死机的。mysql数据库获取随机数据的函数rand(),我建议轻易不要用这个,我写博客的时候试了一下,从16万数据里随机获取5条数据,用时14.02秒,这个耗费满惊人的。原创 2023-11-16 21:57:08 · 579 阅读 · 0 评论 -
单点登录实现?
(2)扩展性不强:如果将来搭建了多个服务器,虽然每个服务器都执行的是同样的业务逻辑,但是session数据是保存在内存中的(不是共享的),用户第一次访问的是服务器1,当用户再次请求时可能访问的是另外一台服务器2,服务器2获取不到session信息,就判定用户没有登陆过。简而言之,多个系统,统一登陆。补充:域名通过 “.” 号切分后,从右往左看,不包含 “.” 的是顶级域名,包含一个 “.”的是一级域名,如:baidu.com, 包含两个“.”的是二级域名,如:a. baidu.com ,以此类推。原创 2023-11-16 21:45:21 · 618 阅读 · 0 评论 -
redis的五种数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。原创 2023-11-03 22:15:37 · 403 阅读 · 0 评论 -
redis相关的一些面试题?
这样用户可以注册多个socket,然后不断地调用select读取被激活的socket,redis服务端将这些socke置于队列中,然后,文件事件分派器,依次去队列中取,转发到不同的事件处理器中,提高读取效率。缓存穿透:假如某一时刻访问redis的大量key都在redis中不存在(比如黑客故意伪造一些乱七八糟的key),那么也会给数据造成压力,这就是缓存穿透,解决方案是使用布隆过滤器,它的作用就是如果它认为一个key不存在,那么这个key就肯定不存在,所以可以在缓存之前加一层布隆过滤器来拦截不存在的key。原创 2023-11-02 10:43:52 · 247 阅读 · 0 评论 -
单点登录是什么?
单点登录的本质就是在多个应用系统中共享登录状态。如果用户的登录状态是记录在 Session 中的,要实现共享登录状态,就要先共享 Session,比如可以将 Session 序列化到 Redis 中,让多个应用系统共享同一个 Redis,直接读取 Redis 来获取 Session。单点登录(Single Sign On, SSO)是指在同一帐号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的应用系统。原创 2023-10-19 23:53:08 · 312 阅读 · 0 评论 -
swoole和workman的区别?
workerman 是纯php写的网络框架.支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议,拥有异步Mysql、异步Redis、异步Http、MQTT物联网客户端、异步消息队列等众多高性能组件。swoole是c/c++写的网络通讯扩展,Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。2.实性能差不多,workerman更稳定,发现问题,更易维护。原创 2023-10-19 23:50:43 · 1890 阅读 · 0 评论 -
thinkphp队列的使用?
但是,我这边没有生成,但是根据Queue.php源码可以看出,配置是在config.php文件中的一个键值对。看了网上其他的一些帖子说配置文件在统一目录下/config/queue.php。由于我是tp框架5.1的,所以选择了think-queue 1.1.6。由于框架版本原因可以选择适合的版本。原创 2023-10-19 23:41:11 · 650 阅读 · 0 评论 -
php定时任务
windows上和linux上有一个类似的cmd和bat文件,bat文件类似于shell文件,执行这个bat文件,就相当于依次执行里面的命令(当然,还可以通过逻辑来实现编程),所以,我们可以利用bat命令文件在windows服务器上面实现PHP定时任务。确定,这样一个定时任务就建立好了,在这个定时任务上右键,运行,这个定时任务就开始执行了,到点时,就会运行cron.bat处理,cron.bat再去执行php。而Linux中,使用命令行,用CronTab来定时任务,又是绝佳的选择,而且也是效率最高的选择。原创 2023-10-19 23:39:10 · 389 阅读 · 0 评论 -
swoole 是什么?
使 PHP 开发人员可以编写高性能的协程 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。Swoole是一个为PHP用C和C++编写的基于事件的高性能异步& 协程并行网络通信引擎;原创 2023-10-19 23:37:59 · 388 阅读 · 0 评论 -
php消息推送
Workerman是一款运行在PHP环境下的高性能的异步事件驱动框架,由著名PHP框架YII的作者王盼创建。该框架通过使用PHP socket扩展实现了对WebSocket的支持,并在此基础上实现了处理TCP/UDP协议的能力。原创 2023-10-19 23:36:57 · 495 阅读 · 0 评论 -
在innodb引擎中,count(*)、count(1)、count(主键)、count(字段)哪个性能最高?
总体而言,count(*)和count(1)的性能相对较差,但在某些情况下可能由于优化器的优化而表现得相对较好。count(主键)和count(字段)的性能相对较好,但具体表现取决于主键或字段的类型以及是否有索引等因素。在实际应用中,需要根据具体场景选择合适的计数值来提高性能。在InnoDB引擎中,这四种计数值的效率高低取决于具体的数据库和数据表结构,无法一概而论哪个性能最高。但在某些情况下,由于优化器可能会将1视为常数,因此count(1)可能在性能上略好于count():统计所有行的数量。原创 2023-10-19 22:42:28 · 354 阅读 · 0 评论 -
where子句如何优化?
总之,优化 WHERE 子句需要考虑多方面因素,包括索引、数据类型、查询条件、数据库配置等。根据具体情况选择合适的优化方法可以提高查询性能。在数据库查询中,WHERE 子句对查询性能有很大的影响。原创 2023-10-19 22:39:48 · 674 阅读 · 0 评论 -
migration 与navicat
它提供了直观的界面和丰富的工具,让用户可以轻松地进行数据库设计、表格和视图的创建、索引和约束的定义、SQL查询的执行等。Navicat还支持数据备份和恢复、数据同步和转换、数据导入和导出等功能,可以满足不同层次的用户需求,包括开发人员、数据库管理员、数据分析师等。Migration主要针对的是数据的迁移或复制,从一个数据库迁移到另一个数据库,或者从一个环境复制到另一个环境。因此,两者的区别在于Migration主要关注数据的迁移/复制过程,而Navicat则是一款全面的数据库管理工具。原创 2023-10-18 23:34:15 · 256 阅读 · 0 评论
分享