SQL 性能解析:SQL慢索引 -1
尽管有树遍历的效率,还是存在索引搜索不如预期那样快的情况。长期以来,这种矛盾助长了“未生成索引”的神话。这个神话将重建索引作为神奇的解决方案。<神话篇>对这一神话和其他神话做了更详细的描述。目前,您可以理所当然地认为,从长远来看,重建索引并不能提高性能。即使在使用索引时,琐碎语句也可能很慢的真正原因可以在前面的部分的基础上解释。慢索引查询的第一个...
SQL 性能解析:SQL 索引解析
“索引使查询更快”是我见过的对索引最基础的解释。虽然这句话对索引最重要的一面做了很好的解释,但不幸的是,还不够充分。本文将以不那么粗浅的,也没那么深入细节的方式描述索引结构。它只是为理解SQL性能方面提供了足够视野。索引是数据库中的一个独特的结构,使用 create index 语句创建。它需要自己的硬盘空间,并持有一份索引的表格数据的副本。这意味着索引是纯...
引入 PHP-CS-Fixer 到老项目中
您正在处理一个遗留的 PHP 项目,并希望使用 friendsofphp/php-cs-fixer 来强制执行一致的编码标准。但你不确定如何在不造成问题的情况下做到这一点。在您的遗留PHP中引入PHP CS Fixer以降低风险并邀请其他开发人员进行合作,应该采取什么样的策略?要求如果你想在你的遗留PHP项目中成功地引入 PHP CS Fixer,你将有以下要求:...
Symfony VarDumper 组件打印变量
说到调试,Symfony 的 VarDumper 组件带来了革命性变化。它让我们可以用一种简洁高效的方式打印变量。如果你的项目中还没有用到,应该去试一试。本文我们将一起看看怎么样用它来打印对象,使之更具可读性。问题在一个使用Strip...
让代码更具可读性小技巧
你是否维护过他人的项目?一个让你一打开就不寒而栗的项目?即使还未细读代码,你已经知道它一团糟了。可能你也找不出具体问题,不过这些代码就是看起来就很怪异,感觉哪里不对。编写整洁的代码;让你可以在写完一两年后回看还是能感觉修改起来很舒适的代码,是个艺术。这绝对是一个主观的话题——别误会我的意思;但“编写可读的PHP”有很多部分是可以掌握的。首先我们要提的是,一个...
本地网络测试 Laravel 网站
开发网站时,我们常常会在真实的移动设备上预览查看效果。或者让家人在不使用电脑大动干戈的情况下,帮助预览和测试。本文将介绍一个简单快捷的方法,让你可以使用任何设备在本地网络中查看你的网站。首先,几个带有解决方案的应用程序使用Ngrok是比较常用的一种方法。Ngrok很好看,很神奇,它是一个HTTP/HTTPS隧道,允许任何人预览您在本地机器上的网站,而无需进行...
如何解决 Laravel 队列 "ModelNotFoundException" 问题
Laravel 因为没有找到相关模型而导致队列任务失败,该怎么办?让我们一起看看队列任务中的 ModelNotFoundExpection 异常有哪些处理方法。Illuminate\Database\Eloquent\ModelNotFoundException: No query results for model [App\Models\User]这是一...
Laravel 中如何在数据库事务中延迟队列及事件监听器
如果在数据库事务期间触发了队列或监听,可能会因为数据回滚而导致数据不一致。本文将介绍如何妥善处理。Laravel 开发者可能会碰到这么一个问题:在数据库事务期间触发了队列或事件监听。这一问题可能导致 ModelNotFoundException、数据不一致以及其他一些可能影响应用可靠性的问题。本文将说明数据库事务为什么重要、使用时会碰到哪些常见问题以及如何在...
PostgreSQL: 详解索引 Include 子句
有些数据库 —— 比如 Microsoft SQL Server、IBM Db2 及发行版11之后的PostgreSQL —— 在创建索引语句时都支持 include 子句。PostgreSQL 引入这个特性是促使我发这篇长文解释 include 条件的直接原因。深入细节之前,我们先回顾一些(非聚簇)B-树的索引是如何工作的以及全能的index-only s...