标签: php

显示 MySQL 健康状态的脚本?

Kev 建议这个问题(/sf/ask/736748701/)更适合这里。


我知道 phpMyAdmin 可以显示 MySQL vars 和类似内容的列表。

但是我很想有一个脚本来显示,例如,如果 MySQL 配置或一些图形工具有问题来查看当前的 MySQL 健康状态。

有这样的事情吗?例如,我如何知道当前设置是否对我的机器不利?

假设我将 innodb 缓冲池大小设置为 64MB,而我的一个 INNODB 表是 1GB。这一点都不好。这只是 innodb 池大小的一个例子。我认为可能还有许多其他设置需要注意基于 Web 的脚本可以帮助监控。

mysql php

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

如何在phpPgAdmin中将CYCLE添加到BIGSERIAL

我想申请CYCLE一个BIGSERIAL在phpPgAdmin的。

我已经看到如何通过查询来实现,但我更愿意通过 phpPgAdmin 来实现。

这可以用 phpPgAdmin 完成吗?如果是这样,如何?如果没有,如何CYCLE应用于预先存在的BIGSERIAL列?

postgresql auto-increment php

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

如何对动态表列表执行查询?

我有一个名为( conntrack )的数据库,其中包含未知数量的表。我有一个静态表“tabidx”,其中有一列“日期”。

下表是静态的,其名称为 tabidx,提供对其他表的引用:

 tabidx (table):
 +------------+
 |    date    |
 +------------+
 | 2015-04-25 |
 | 2015-04-26 |
 | 2015-04-27 |
 | 2015-04-28 |
 | 2015-04-29 |
 +------------+
Run Code Online (Sandbox Code Playgroud)

以下是“tabidx”“date”中引用的表的示例:

2015-04-25 (table):                             
+---------------------------------------------+    
| time      | username | srcip      | scport  |    
+---------------------------------------------+    
| 19:20:00  | L001000  | 10.10.10.1 |  1304   |   
| 19:20:00  | L001001  | 10.10.10.2 |  1640   |    
| 19:20:01  | L001002  | 10.10.10.3 |  2001   |    
+---------------------------------------------+ 

2015-04-26 (table):                             
+---------------------------------------------+    
| time      | username | srcip      | …
Run Code Online (Sandbox Code Playgroud)

mysql php select

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

优化相关表中复杂的总和和计数

我有一个categories表,它有两列,idname.

我有一个types表,其中包含三列idcategory_idpoints

我有一个products表,其中包含三列idtype_idcustomer_id

这意味着每个产品都有一个类型,每个类型都有一个类别。一个品类有多种类型,一种类型有多种产品。

我正在使用 MySQL 和 PHP。

从 PHP 中,给定customer_id,我想知道客户在每个类别中分别拥有多少分(例如,向用户显示一个表格)。

我的解决方案:我首先会做一个查询来查找所有类别 id,然后对于每个category_id我会找到该类别中的所有类型(即,所有具有给定 的类型category_id);然后对于每一个,type_id我会计算有多少产品同时具有那个type_id和给定的customer_id,我会把那个数量乘以给定的点数type_id。将每个结果的所有结果相加type_id,我最终得到了给定客户在这方面的总分category_id。正如我所说,我必须为每个category_id. 我的解决方案会起作用,但在我看来它会非常慢。我正在寻找有关如何以更好的方式解决此问题的建议 - 使用更少的查询,或更快的查询,或两者兼而有之。 按照现在的方式,它可能会执行与类别数量一样多的查询。


例子:

/* TABLE: categories */

name           id
A              1
B              2
C              3

/* TABLE: types */

points         id          category_id …
Run Code Online (Sandbox Code Playgroud)

mysql performance join count php query-performance

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

更改数据库架构的缺点 - 在中间插入或删除新列/表

看了很多链接,对于电商网站来说,因为可能需要定期添加很多属性,如果我们使用Flat table可以吗?

在项目中间更改数据库架构或插入/删除新列和表的缺点是什么?

如果我们在数据库中保留大量 NULL 值,还会有什么问题吗?

因为我听说 EAV 是邪恶的,所以我想创建一个带有平面桌子的购物网站....

mysql php eav

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

如果删除查询使 SQL Server for php 超时,会发生什么情况?

技术

我正在使用 php 的 mssql 扩展(在 linux 上)向 SQL Server 发送查询。

设置。

我有一个表格,可以相当快地建立一次性数据。我花了比预期更长的时间来构建一个 cron 每小时清理这些数据,所以它已经积累了几个月来超过 1G 的数据,不确定有多少行,但可能超过 100 万。

问题

因此,我对超过 1 天的任何内容运行了删除查询。

DELETE FROM CacheForms WHERE TimeStamp < 1503454349
Run Code Online (Sandbox Code Playgroud)

但是在 60 秒后查询超时并且脚本失败。(更新同样发生在 10 分钟。)

问题

当这个删除查询超时(一个 php 概念)数据库会发生什么?数据库是否从事务日志中恢复已删除的数据?还是数据真的被删除了?或者查询是否在 sql server 中继续运行?

sql-server php query-timeout

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

更改行时如何更新其他行的“sorting_order”列?

添加新类别和更改现有类别时,我需要为类别设置自定义顺序。我相信代码和 sql 查询在两种情况下都是相同的。在我的webshop_categories-table 中,我有一个so-column(排序顺序 INT),我用它来确定应将类别输出给查看器的顺序。

这是我的类别表外观的简化示例(so = sort_order):

id  |   name   |  so
--------------------
1   |   Shoes  |  1
2   |   Hats   |  2
3   |   Bags   |  3
4   |   Coats  |  4
5   |   Rings  |  5
Run Code Online (Sandbox Code Playgroud)

添加新类别时,无需定义排序顺序,我只需提交一个表单,然后运行如下查询:

$so = $dbh->query('SELECT (MAX(so)+1) FROM webshop_categories WHERE so != 0')->fetchColumn();
$ins = $dbh->prepare('INSERT INTO webshop_categories (name, so)')->execute([$_POST['name'], $so]);  
Run Code Online (Sandbox Code Playgroud)

(这将添加一个新类别,并将其放在最后。在这种情况下,so将设置为 6)

这是添加新类别的非常基本的方法。工作正常。但是在大多数情况下,在处理类别时,需要将其按特定顺序进行展示。

但通常在添加新类别时,人们会希望指定该新类别相对于现有类别应放置的位置。那时更新so-column 对我来说是一个脑筋急转弯......

我用于添加新类别的简化表格:

<form>
  <input type="text" name="name">
  <select name="so">
    <option value="0" …
Run Code Online (Sandbox Code Playgroud)

mysql php sorting update

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

MySQL 查询失败:SELECT 列表的表达式 #6 不在 GROUP BY 子句中并且包含非聚合列修复错误每次重新启动都会重新出现

MySQL Query Failed: Expression #6 of SELECT list is not in GROUP BY clause and contains nonaggregated column 
Run Code Online (Sandbox Code Playgroud)

使用以下查询修复了此错误。通过以 root 用户身份登录 MySQL 控制台

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Run Code Online (Sandbox Code Playgroud)

但问题是每次我重新启动系统时这个错误都会重新出现。如何解决这个问题?

mysql php greatest-n-per-group

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

我应该使用 VARCHAR 还是 DATETIME?

我正在制作一个博客 cms 系统,帖子的发布日期和时间应该显示在我的网站上。

我应该使用函数将日期时间保存在 php 代码中并将其保存在数据库中的 varchar 中,还是应该通过使用 DATETIME 使用数据库的默认值。

哪种方法更专业/更有效

mysql php

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

将数据插入多个表

对于我的系统,学生需要通过填写注册表(个人、联系方式和课程详细信息;还有用户名和密码)来创建一个用户帐户。

我需要通过一个表单收集注册数据,并将收集到的数据插入到我数据库中的两个相关表中(student表中的所有学生详细信息和users)。

我如何最好地在 php 中编码?

实体关系模型

mysql database-design php application-design

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

结合 2 个 SELECT 查询并在 PostgreSQL 中打印结果

我有 2 个查询,我想将它们一起使用以向用户生成一个输出结果。输出向用户描述了从 A 到 B 的旅程。当我尝试将两个查询与UNION以下内容结合时,我不断收到语法错误:

Query failed: ERROR: syntax error at or near "UNION" LINE 6: UNION ^
Run Code Online (Sandbox Code Playgroud)

我看过一个类似的问题,但提供的解决方案和讨论似乎不起作用。

$name = pg_escape_string($_POST['name']); // Start destination from user input
$name2 = pg_escape_string($_POST['name2']); // End destination from user input

//If no results are given, the following query below will execute instead.

if (pg_num_rows($result) == 0 ) {

$query = "SELECT dt1.name as name1,dt1.time as time1,dt2.name as name2,dt2.time as time2
From departure_times as dt1
inner join departure_times as dt2 …
Run Code Online (Sandbox Code Playgroud)

postgresql php union

0
推荐指数
1
解决办法
9239
查看次数

按数字顺序,然后是字母,然后是空值

我的数据库中有以下列:

abc
1
2
null
100
6
Run Code Online (Sandbox Code Playgroud)

我想按照以下顺序对这些值进行排序和显示:

1
2
6
100
abc
null
Run Code Online (Sandbox Code Playgroud)

任何人请帮我解决它。考虑以下查询:

select * from test_table where status=1 order by test_column DESC
Run Code Online (Sandbox Code Playgroud)

或者

 select * from test_table where status=1 order by if((test_column = '' OR test_column IS NULL),'999999',test_column) DESC
Run Code Online (Sandbox Code Playgroud)

mysql php

0
推荐指数
1
解决办法
5183
查看次数