Install mongodb extension on Mac M1

在 Mac M1 上安装 PHP 开发环境遇到的问题。 安装 mongodb 扩展: 编译错误: 解决方案: 参考: https://stackoverflow.com/questions/66496119/pecl-fails-installing-mongodb-driver-on-apple-silicon-m1  621 total views,  3 views today

 621 total views,  3 views today

Published

Laravel Sail

Laravel Sail 需要 Laravel 8 以后的版本,如果你和我一样用的是 Laravel 7,需要先升级到 Laravel 8。  415 total views

 415 total views

Published

MySQL JSON Table

今天在 Stack Overflow 上看到这样一个问题: How SUM the result of an array returned by jsn_extract? 参考: https://stackoverflow.com/questions/31731513/mysql-labs-json-native-type-how-sum-the-result-of-an-array-returned-by-jsn-extr https://dev.mysql.com/doc/refman/8.0/en/json-table-functions.html  507 total views

 507 total views

Published

PHP 8

PHP 8.0 发布了,官网甚至还上线了新的宣传页面。作为一个 PHP 程序员,还是要学习一下的。 命名参数 仅仅指定必填参数,跳过可选参数。 参数的顺序无关、自己就是文档(self-documented) 注解 现在可以用 PHP 原生语法来使用结构化的元数据,而非 PHPDoc 声明。 构造器属性提升 更少的样板代码来定义并初始化属性。 联合类型 相较于以前的 PHPDoc 声明类型的组合, 现在可以用原生支持的联合类型声明取而代之,并在运行时得到校验。 Match 表达式 新的 match 类似于 switch,并具有以下功能: Match 是一个表达式,它可以储存到变量中亦可以直接返回。 Match 分支仅支持单行,它不需要一个 break; 语句。 Match 使用严格比较。 Nullsafe 运算符 现在可以用新的 nullsafe 运算符链式调用,而不需要条件检查…

 596 total views

Published

MySQL 窗口函数

MySQL 8.0 引入了 窗口函数(window functions) ,我们看一下都有哪些功能。 Name Description CUME_DIST() Cumulative distribution value DENSE_RANK() Rank of current row within its partition, without gaps FIRST_VALUE() Value of argument from first row of window frame LAG() Value of argument from row lagging current…

 828 total views,  1 views today

Published

Nginx Log Rotation

Nginx 日志切割,在网上查了很多教程。还不如直接看 Ubuntu / CentOS 打包的 Nginx 日志切割配置靠谱。 CentOS 8 Ubuntu 20.10 参考: https://www.nginx.com/resources/wiki/start/topics/examples/logrotation/ https://www.digitalocean.com/community/tutorials/how-to-configure-logging-and-log-rotation-in-nginx-on-an-ubuntu-vps  382 total views

 382 total views

Published

PHP Interview Questions(19)

 27,814 total views,  12 views today

 27,814 total views,  12 views today

Published

PHP Interview Questions(18)

面试时间:2020-02-20,星期四,上午 10:30。 1. 怎么获取字符串倒数第二个字符。 2.常用的框架 区别  1,319 total views,  1 views today

 1,319 total views,  1 views today

Published

PHP Interview Questions(17)

面试时间:2020年1月7号,星期一,上午十点。 1.What does “&” mean in ‘&$var’? 2.What is MVC? 3.What is the difference between $_GET and $_POST? 4.What will be the output of each statements below and why? var_dump(0123 == 123); var_dump(‘0123’ == 123); var_dump(‘0123’ === 123); 5.After the…

 6,285 total views,  4 views today

Published

【翻译】MySQL 优化概述

原文链接:https://dev.mysql.com/doc/refman/8.0/en/optimize-overview.html 数据库性能取决于数据库层面的多个因素,例如表、查询和配置。这些软件构造会导致硬件层面的 CPU 和 I/O 操作,你必须尽可能最小化并提高效率。当你刚开始优化数据库性能的时候,首先你要学习软件方面的高级规则和准则,和使用系统时间测量性能。当你成为专家后,你将了解更多的内部细节,并开始测量 CPU 周期和 I/O 操作等指标。 普通用户的目标是从现有的软件和硬件配置中获得最佳的数据库性能。高级用户则会寻找机会来改进 MySQL 软件本身,或者开发自己的存储引擎和硬件设备来扩展 MySQL 生态系统。 数据库层面优化 使数据库应用变快的最重要因素是其基本设计: 表结构是否正常?特别是列是否具有正确的数据类型,并且每个表是否具有适用于工作类型的相应列?例如,需要频繁更新的应用程序通常有许多表,但列很少,而分析大量数据的应用程序通常只有很少的表,但有许多列。 是否使用了正确的索引来提高查询效率? 你是否为每个表选择适当的存储引擎,并且充分利用每种存储引擎的优势和功能?特别是选择事务性存储引擎(如 InnoDB)还是非事务性存储引擎(如 MyISAM)对于性能和可伸缩性非常重要。 注意 InnoDB 是新表的默认存储引擎。实际上,先进的 InnoDB 性能特点意味着 InnoDB 表通常优于更简单的 MyISAM 表,尤其是对于繁忙的数据库。 是否每个表都使用适当的行格式?此选项还取决于用于表的存储引擎。特别是,压缩表占用的磁盘空间较少,因此读取和写入数据所需的磁盘 I/O 更少。压缩可用于具有 InnoDB 表的所有类型的工作负载以及只读的 MyISAM 表。 应用程序是否使用适当的锁定策略?例如,在可能的情况下允许共享访问,以便数据库操作可以同时运行,并在适当时请求独占访问,以便关键操作获得最高优先级。同样,存储引擎的选择也非常重要。InnoDB 存储引擎无需您参与即可处理大多数锁定问题,从而在数据库中实现更好的并发性,并减少代码的实验和调优量。…

 18,037 total views,  1 views today

Published