修复 MySQL 8.4 的 "mysql_native_password is not loaded" 插件未加载错误
MySQL 8.4(截至 2024 年的最新 LTS 版本)中引入的一个主要变化是,默认情况下不再启用 “MySQL Native Password” 插件。此更改会影响使用 MySQL 数据库和 mysql_native_password 身份验证插件的 PHP 和其他应用。由于默认情况下不再加载 mysql_native_password 插件,因此 ...
Laravel 中高效的用户时区处理
当今世界,web 应用经常用来满足来自不同时区的用户的需求。无论是事件调度、显示准确的时间戳还是管理用户交互,正确处理时区对于提供无缝的用户体验至关重要。然而,管理时区可能是一项复杂的任务,尤其是在处理不同地区、夏令时变化和不同用户偏好时。在构建应用时,几乎可以肯定地你会存储 DateTime 和其他与时间戳相关的数据。默认情况下,Laravel 在每个迁移...
MySQL深入:B+树的演化和操作
1. 二叉查找树在二叉查找树中,左子树的键值总是小于根的键值,右子树的键值总是大于根的键值,因此可以通过中序遍历得到键值的排序输出。对上图进行中序遍历(左-根-右)后输出:2、3、5、6、7、8对图9-5的这棵二叉树进行查找,如查找键值为5的记录,先找到根,其键值是6,6大于5,因此查找6的左子树,找到3;而5大于3,再找右子树……一共找了3次。如果按2、3...
使用 python 世界港口插入到 mysql
使用 python 将世界港口插入到 mysql#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = "leo" __time__ = "2018-07-05" import requests from lxml import etree import pymysql # 打开数据库连接...
PHP 8.1: MySQLi: 执行时绑定
PHP 8.1 起,MySQLi 扩展的 mysqli_stmt_execute 函数及 mysqli_stmt::execute 方法(别名) 接收一个 $params 参数。如果传入参数,传入的值会被当作字符串绑定到语句中。此前,参数化的 SQL 查询需要调用 bind_param 显式绑定变量:$statement = $db->prepare(...)
故障分析 | 从慢日志问题看 MySQL 半一致性读的应用场景
背景某系统执行更新操作发现很慢,发现有大量慢日志,其中 Lock time 时间占比很高,MySQL 版本为 5.7.25,隔离级别为 RR。
如何在 Laravel 中找到最慢的查询
你的网站慢吗?加载需要很长时间吗?用户是否抱怨它几乎无法使用 ?ni应该检查您的数据库查询。我将向您展示一种轻松分析所有数据库查询的简洁方法。当然,您的网站速度慢的原因有很多,但最常见的原因之一是数据库查询速度慢。但是在 laravel 中,我们(大多数时候)不使用 SQL 从数据库中获取数据,我们使用 Eloquent ORM 和 查询构建器 ,这有时会导致...
数据库外键约束的作用
外键是该表是另一个表之间联接的字段外键必须为另一个表中的主键;外键的用途是确保数据的完整性。它通常包括以下几种:实体完整性,确保每个实体是唯一的(通过主键来实施)域完整性,确保属性值只从一套特定可选的集合里选择关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值FOREIGN...
数据库 Auto Increment 的实际问题
本文中,我将展示我以后将在 Postgres 和 MySQL 中避免使用 auto-increment 自增长字段的两个原因。我更愿意使用 UUID 字段除非有非常好的不使用的理由。 MySQL 8.0 auto-increment ID 重用 如果运行的是旧版本的MySQL,那么自动递增的ID可能会被重复使用。让我们看看这个动作..
SQL 性能优化:慢索引-2
前面章节介绍了如何通过修改现有字段的索引顺序获得好处,不过这一示例考量的只有两个 SQL 语句。然而,修改索引可能影响所索引的表的所有查询。本文解释了数据库如何选择索引并演示了修改现有索引可能产生的副作用