标签: php

将 COUNT() 理解为 `count`,

我目前正在学习如何在 PHP mysql 中构建站点。但是,我似乎无法理解COUNT() as count,也不介意做进一步的解释。

我得到了 COUNT, 0 || 的原则 1,以及它如何返回与该查询相关的所有值。但是,不知道 COUNT 作为计数是如何工作的。

无论如何,这就是我正在编写的代码的运行方式 - 所以我们有一个工作示例 - 也是我第一次感到困惑的地方。

SELECT COUNT(`id`) as `count`, 
       `id` 
FROM `user` 
WHERE `email`='$email' 
AND `password`='".md5$password."'";
Run Code Online (Sandbox Code Playgroud)

如果有人可以解释是一个很大的帮助!

mysql php

4
推荐指数
1
解决办法
840
查看次数

即使在权限更新后,我仍然收到关系用户拒绝的错误权限

我收到错误ERROR: permission denied for relation users并尝试使用两者更新权限

grant all privileges on all tables in schema ops to my_user GRANT ALL PRIVILEGES ON TABLE the_table TO my_user

在DBVisualizer中我的资助选项卡可以看到my_user用户拥有的权限DELETEINSERTSELECTTRUNCATE,和UPDATEIS_GRANTABLE所有这些都设置为 NO。但是我仍然收到此错误。还剩下什么。

postgresql permissions php

4
推荐指数
1
解决办法
2万
查看次数

测试查询速度

当我第一次运行查询时,执行需要 x 毫秒。当我第二次运行它时,它花费的时间要少得多。我假设这个机制涉及一些缓存,但我需要知道我的查询的真实速度是多少。

  • 我可以在查询指令后重置缓存或类似的东西吗?
  • 在开发阶段,您使用什么来查看查询速度?
  • 你能给我提供一个有用的资源/工具/教程/博客来阅读这个东西/功能/问题吗?

顺便说一句,我在 Windows (XAMPP) 中使用 Apache、MySQL 和 PHP。

mysql testing windows query php

3
推荐指数
1
解决办法
2480
查看次数

用于搜索引擎和 gis 的哪个图形数据库?

我刚刚了解到那里有“图形数据库”,它们更适合两个应用程序“搜索引擎”,尤其是“gis”。

为了避免讨论关系数据库是否更适合并明确需要什么样的数据库,这里有一些我想使用它的详细信息:

  1. 应用程序(搜索引擎):在关系数据库中处理搜索引擎数据很慢,因为您将拥有包含大量索引的大表。想象一下像'links'这样的表,它只有from_pageid INT, to_pageid INTPRIMARY KEY(from_pageid,to_pageid),INDEX(from_pageid)和INDEX(to_pageid);这将有大约 1'000'000 个条目。当使用图形数据库时,每个节点只有所有“从”和“到”链接,有或没有索引,它们就在那里,而无需查找巨大的索引。
  2. 应用程序 (GIS):如果您有一张地图,其中包含节点(具有地理位置)和它们之间的链接(=道路、道路、自动路线...),您将有一个很大的“链接”表来询问哪些链接(road,ways,...) 可用于节点 x。与搜索引擎应用程序相同的问题。

好的,现在还有一些专业:

  1. 它应该是一个免费软件(免费)。原因:我想将它用于研究/教育目的(我目前必须自己为此提供资金)。AND:我可能想让它成为一种商业产品。因此,如果切换到商业应用程序,“非商业用途免费”解决方案至少应该是负担得起的……
  2. 我想使用 PHP、C/C++ 来访问数据库(最好两者都可以)。如果还支持 Java/Android,那就更好了。
  3. 操作系统:Linux!我想避免使用基于 Java 的产品,因为 javaVM 往往会吃掉所有 RAM(只有非常有限的服务器资源)并且不释放任何内存 - 即使它们可以。

你会向我推荐什么数据库?

database-recommendation linux php graph spatial

3
推荐指数
1
解决办法
1119
查看次数

购物车数据库架构

我需要帮助为数据库创建架构以保存与 Web 用户的购物车/会话相关的信息。每个会话都有一个会话 ID、一个保持创建时间的时间戳、一个到期时间戳、一个指示购买是否完成的布尔值,然后是一个产品列表,以及它们相关的数量和价格。每个用户将只有一个 ID、原始时间戳、到期时间戳和购买布尔值,但他们可能会引用一种或多种具有不同数量和价格的产品。

我最初的想法是有一个会话表和一个产品表,但我似乎无法摆脱会话 ID 和产品信息在大订单和不同会话中变得多余的想法。简而言之,如果产品表的不同行始终引用重复的产品编号和会话 ID,是否会变得混乱?

我在正确的轨道上吗?或者您能否提出一种我尚未考虑的替代设计模式?

如果您需要更多信息,请告诉我。先感谢您!

mysql schema php

3
推荐指数
1
解决办法
6607
查看次数

管理用户数据的正确方法是什么?

我正在尝试使用用户配置文件创建一个简单的注册登录脚本,我创建了一个具有以下结构的表:

+------------+---------------+------+-----+---------+----------------+
| Field      | Type          | Null | Key | Default | Extra          |
+------------+---------------+------+-----+---------+----------------+
| id         | int(11)       | NO   | PRI | NULL    | auto_increment |
| username   | varchar(32)   | NO   |     | NULL    |                |
| password   | varchar(32)   | NO   |     | NULL    |                |
| first_name | varchar(50)   | NO   |     | NULL    |                |
| last_name  | varchar(50)   | NO   |     | NULL    |                |
| email      | varchar(1024) | NO   | …
Run Code Online (Sandbox Code Playgroud)

mysql performance database-design php

3
推荐指数
1
解决办法
292
查看次数

SQL Server 从 2008R2 升级到 SQL Server 2014 后出现超时错误

我们的数据库有一个 SQL Server 2008R2 企业版来支持前端应用程序。我们以前从未遇到过超时问题。最近,该公司决定将数据库升级到 SQL Server 2014 企业版,其中 2 个节点始终处于群集设置。新服务器比旧服务器具有更好的 CPU、内存。

升级后我做了所有必要的修改,检查数据库一致性,运行 DBCC UPDATEUSAGE,更新统计信息,重建索引,重新编译存储过程等等。数据库切换和迁移一切顺利。但是,我们的用户开始抱怨超时问题。

我一直在查看不同的文章、博客文章并进行了一些修改,例如更改连接字符串和添加 MultiSubnetFailover = 'True',这似乎有很大帮助并最大限度地减少了超时频率,但问题仍然存在。有谁知道是什么导致了这个问题以及如何解决它?我非常感谢您提出的解决此问题的建议和建议。

sql-server-2008 php availability-groups sql-server-2014 timeout

3
推荐指数
2
解决办法
1943
查看次数

Mysql 选择具有 7 个连续日期的行

想象一个包含以下列的简单表: item_iddate
和值:

CREATE TABLE foo (item_id int, date date);

INSERT INTO foo(item_id, date)
VALUES
    ( 1, '2017-02-10' ),
    ( 2, '2017-02-10' ),
    ( 1, '2017-02-11' ),
    ( 1, '2017-02-12' ),
    ( 1, '2017-02-13' ),
    ( 2, '2017-02-13' ),
    ( 1, '2017-02-14' );
Run Code Online (Sandbox Code Playgroud)

如何选择item_id表中连续7天记录的s?

开始和结束日期未知。它应该从任何开始日期到之后的连续 7 天都可用。

mysql php

3
推荐指数
1
解决办法
5623
查看次数

将具有许多表的大型数据库从 latin1 转换为 utf8mb4

所以这不是一个关于“如何将表从 latin1 转换为 utf8?”的问题。我完全知道这一点并且明白了。我想问的问题是,“如何才能让这种转变在过渡期间尽可能少地痛苦?” 我知道我需要转换每个表上的列,然后在某个时候将 PHP MySQL 连接从 latin1 更改为 UTF8,如果我的数据库是 1 GB,而不是 1 TB,我可以轻松完成所有这些。

使用 MariaDB 10.3,数据库中有大约 600 个表,全部都在 InnoDB 存储引擎下,我想说其中可能有 50 个在 1GB 以上,大约 20 个在 10 或 100 GB 之间。这大约 20 个表的问题在于它们是应用程序本身的核心,而这 20 个表中的 1 个表是发生大量 UTF8 问题的地方(当前为 66GB)。

因此,处理大约 90% 的表基本上不会有停机时间,但最后 10% 的表就很麻烦了。关于我应该采取什么步骤以及按什么顺序有什么建议吗?我一般的想法是这样的......

  1. 将 90% 转换为 utf8mb4
  2. 将 PHP MySQL 连接字符集从 latin1 设置为 utf8mb4
  3. 使用我构建的脚本将剩余表的每一列从 latin1 转换为二进制,然后将二进制转换为 utf8mb4。大概留出...... 3-4小时的停机时间???我们的应用程序是一个非常繁忙的应用程序,3-4 小时的停机时间已经很多了。

有人成功尝试过 Percona 的pt-online-schema-change吗?您认为这对这种情况有帮助吗?

我唯一能想到的另一件事是启动并运行一个新的从属数据库,它是主数据库的新副本,在该从属数据库上进行所有 utf8mb4 更改,然后将从属数据库提升到主数据库。我想我也可以事先转换所有的奴隶,只需在我这样做的时候轮流使用或停止使用它们即可。唯一未知的是如果主设备是 latin1,而从设备都是 utf8mb4,会发生什么情况。所有转换后的数据都很好,但我假设新数据可能是 binlog 中的 latin1 并且与字符集无关?

mysql mariadb php

3
推荐指数
1
解决办法
1003
查看次数

MySQL:为什么不在每一列上创建索引?为列建立索引的成本是多少?

知道我不应该在每一列上都有索引,但我不知道为什么。费用是多少?

我有一个包含大约 400 个表的系统,其中许多表都有日期时间或外键(实际上可能没有外键规则,因为它们不严格),并且缺乏索引。这可能会导致相对简单的查询(例如:具有时间条件和表主键的 3 个表中的 3 列)需要大量查询时间。

运行相关查询的时间花费了 2 分钟多,但是一旦我添加了时间戳和外键索引,时间就下降到 200 毫秒以下,增加了 6000%。我很想在我有指标的每一列上添加索引,但我知道(从其他人告诉我)过多的索引是不好的。但我在任何地方都找不到原因!

所以我的问题的根本是:什么是“太多”索引,为什么?

mysql php

2
推荐指数
1
解决办法
4647
查看次数