文章分类: 编程
编程

SQL性能解析:Where 语句

604 2023-05-10 14:46:00

前文描述了索引的结构,并解释了索引性能不佳的起因。下一步,我们来学习如何在 SQL 语句中发现和避免这些问题。我们从 where 语句开始吧。where 子句定义了 SQL 语句的查询条件,因此属于索引的核心功能领域:快速查找数据。虽然 where 子句在性能上有巨大的影响,语法经常上不太小心而导致数据库不得不扫描索引的很大部分。其结果是:写得不好的wher...

详情...
编程

SQL 性能解析:SQL慢索引 -1

525 2023-05-09 11:29:00

尽管有树遍历的效率,还是存在索引搜索不如预期那样快的情况。长期以来,这种矛盾助长了“未生成索引”的神话。这个神话将重建索引作为神奇的解决方案。<神话篇>对这一神话和其他神话做了更详细的描述。目前,您可以理所当然地认为,从长远来看,重建索引并不能提高性能。即使在使用索引时,琐碎语句也可能很慢的真正原因可以在前面的部分的基础上解释。慢索引查询的第一个...

详情...
编程

SQL 性能解析:SQL 索引解析

462 2023-05-07 11:24:00

“索引使查询更快”是我见过的对索引最基础的解释。虽然这句话对索引最重要的一面做了很好的解释,但不幸的是,还不够充分。本文将以不那么粗浅的,也没那么深入细节的方式描述索引结构。它只是为理解SQL性能方面提供了足够视野。索引是数据库中的一个独特的结构,使用 create index 语句创建。它需要自己的硬盘空间,并持有一份索引的表格数据的副本。这意味着索引是纯...

详情...
编程

引入 PHP-CS-Fixer 到老项目中

509 2023-05-05 02:48:00

您正在处理一个遗留的PHP项目,并希望使用 friendsofphp/php-cs-fixer 来强制执行一致的编码标准。但你不确定如何在不造成问题的情况下做到这一点。在您的遗留PHP中引入PHP CS Fixer以降低风险并邀请其他开发人员进行合作,应该采取什么样的策略?要求如果你想在你的遗留PHP项目中成功地引入PHP CS Fixer,你将有以下要求:...

详情...
编程

Symfony VarDumper 组件打印变量

726 2023-05-03 19:58:00

说到调试,Symfony 的 VarDumper 组件带来了革命性变化。它让我们可以用一种简洁高效的方式打印变量。如果你的项目中还没有用到,应该去试一试。本文我们将一起看看怎么样用它来打印对象,使之更具可读性。问题在一个使用Strip...

详情...
编程

探索 PHP 的 First-class callable 语法

588 2023-05-02 10:29:00

查看 Laravel 框架最新的更新时,我发现了一些以前没看到过的语法。

详情...
编程

让代码更具可读性小技巧

475 2023-05-02 09:03:00

你是否维护过他人的项目?一个让你一打开就不寒而栗的项目?即使还未细读代码,你已经知道它一团糟了。可能你也找不出具体问题,不过这些代码就是看起来就很怪异,感觉哪里不对。编写整洁的代码;让你可以在写完一两年后回看还是能感觉修改起来很舒适的代码,是个艺术。这绝对是一个主观的话题——别误会我的意思;但“编写可读的PHP”有很多部分是可以掌握的。首先我们要提的是,一个...

详情...
编程

本地网络测试 Laravel 网站

570 2023-05-01 07:38:00

开发网站时,我们常常会在真实的移动设备上预览查看效果。或者让家人在不使用电脑大动干戈的情况下,帮助预览和测试。本文将介绍一个简单快捷的方法,让你可以使用任何设备在本地网络中查看你的网站。首先,几个带有解决方案的应用程序使用Ngrok是比较常用的一种方法。Ngrok很好看,很神奇,它是一个HTTP/HTTPS隧道,允许任何人预览您在本地机器上的网站,而无需进行...

详情...
编程

如何解决 Laravel 队列 "ModelNotFoundException" 问题

416 2023-04-30 07:06:00

Laravel 因为没有找到相关模型而导致队列任务失败,该怎么办?让我们一起看看队列任务中的 ModelNotFoundExpection 异常有哪些处理方法。Illuminate\Database\Eloquent\ModelNotFoundException: No query results for model [App\Models\User]这是一...

详情...
编程

Laravel 中如何在数据库事务中延迟队列及事件监听器

764 2023-04-29 05:41:00

如果在数据库事务期间触发了队列或监听,可能会因为数据回滚而导致数据不一致。本文将介绍如何妥善处理。Laravel 开发者可能会碰到这么一个问题:在数据库事务期间触发了队列或事件监听。这一问题可能导致 ModelNotFoundException、数据不一致以及其他一些可能影响应用可靠性的问题。本文将说明数据库事务为什么重要、使用时会碰到哪些常见问题以及如何在...

详情...