AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[php](dba)

Martin Hope
user655355
Asked: 2022-09-24 14:50:56 +0800 CST

Mysql UUID 函数,它可以防止重复吗?

  • 0

假设我使用

INSERT INTO database(column1)
VALUES (uuid()); 

如果我再次这样做

INSERT INTO database(column1)
VALUES (uuid()); 

(让我们假设 UUID 都是相同的,不知何故)

mysql会为它抛出错误,还是等到创建不存在的UUID?

使用 UUIDv4(在 PHP 中)

mysql php
  • 2 个回答
  • 26 Views
Martin Hope
Ahmed Raza
Asked: 2022-08-20 03:30:31 +0800 CST

如何编写查询以获得确切的结果

  • -4

我对用 PHP 编写查询感到困惑,我想:

1. SELECT RollNumber FROM student WHERE ProgramID= ?
2. SELECT DSID FROM datesheet WHERE CourseCode = ?
3. INSERT INTO result (DSID, RollNumber) VALUES (both queried above)

我已经尝试过使用 HTML 动态表,但仍然无法获得我想要的确切结果。

还尝试使用我从 stackoverflow 的帖子中看到的这段代码,但没有任何帮助。

INSERT INTO result (DSID, RollNumber)
    VALUES (
        ( SELECT RollNumber FROM student WHERE ProgramID= ? ),
        ( SELECT DSID FROM datesheet WHERE CourseCode = ? )
           );
mysql php
  • 2 个回答
  • 41 Views
Martin Hope
Parikshit Bharadwaj
Asked: 2022-08-10 11:14:46 +0800 CST

优化一个查询多个表和多个条件

  • 2

我需要优化具有多个连接的查询。并且还具有多个 OR AND 条件,这些条件取决于用户输入。

生成的查询是:

SELECT  emp.name as entryby, l.cname as location_name, sp.product AS product_name, 
        sp.refcode as pro_refcode, sup.vendorname, sp.mrpgross AS mrpgross,
        pro.cp AS cost_price, cust.name AS customer_names, cust.phone AS mobile_no,
        sp.uom1 as TotalQTY, sp.category_name, auth.*
FROM erp_salesorderproductsdetails sp
LEFT JOIN erp_salesorder s ON s.id = sp.salesorder_id
LEFT JOIN geopos_employees emp ON emp.id = s.entryby
LEFT JOIN geopos_locations l ON s.loc = l.id
LEFT JOIN geopos_productall pro ON pro.product_code = sp.refcode
LEFT JOIN geopos_supplier sup ON sup.id = pro.vendor
LEFT JOIN geopos_customers cust ON cust.id = s.customer
LEFT JOIN authorize_po auth ON auth.salesorder_id = s.id
WHERE sp.salesorder_id = 301 
AND ( sp.category_name IN(SPECTACLES, SPECTACLE LENSES) )
OR sp.salesorder_id = 310 
AND ( sp.category_name IN(SPECTACLES, SPECTACLE LENSES) )
OR sp.salesorder_id = 3234 
AND (sp.category_name IN(SPECTACLES, SPECTACLE LENSES) )

在这里,sp.salesorder_id根据用户输入,where 条件中的 AND 可以是多个。要检索大约 700 - 800 条记录,大约需要 2 到 3.5 分钟。

但大多数数据计数超过 2000。在这种情况下,它的执行效率不高。任何人都可以提出任何建议吗?

我还分享了正在生成的查询的解释结果。但是,共享表结构并不是一个好主意,因为有些表的列数超过 50。

1   SIMPLE  sp  ALL NULL    NULL    NULL    NULL    6211    Using where 
1   SIMPLE  s   eq_ref  PRIMARY PRIMARY 4   erp_billing.sp.salesorder_id    1       
1   SIMPLE  emp eq_ref  PRIMARY PRIMARY 4   erp_billing.s.entryby   1   Using where 
1   SIMPLE  l   eq_ref  PRIMARY PRIMARY 4   erp_billing.s.loc   1   Using where 
1   SIMPLE  pro ALL NULL    NULL    NULL    NULL    340264  Using where; Using join buffer (flat, BNL join) 
1   SIMPLE  sup eq_ref  PRIMARY PRIMARY 4   erp_billing.pro.vendor  1   Using where 
1   SIMPLE  cust    eq_ref  PRIMARY PRIMARY 4   erp_billing.s.customer  1   Using where 
1   SIMPLE  auth    ALL NULL    NULL    NULL    NULL    13  Using where; Using join buffer (flat, BNL join) 
mysql php
  • 1 个回答
  • 60 Views
Martin Hope
Antonio Sordellini
Asked: 2022-03-29 10:56:19 +0800 CST

同一个 MySQL 数据库在不同服务器上的性能是不同的

  • 1

我有两台服务器:

  • 服务器 A:AMD Epyc 7371 - 16c / 32t - 3.1 GHz / 3.8 GHz 256 GB ECC 2400 MHz 2 × 960 GB NVMe SSD MySql 8.0.26
  • 服务器 B:双 Intel Xeon Gold 6242R - 20c / 40t - 3.1 GHz / 4.1 GHz 384 GB ECC 2933 MHz 6 × 3.84 TB NVMe SSD 2 × 480 GB SATA SSD

在服务器 A 上,尽管它更小,但数据库运行良好,事务非常快,并发用户超过 200 个。

在更大的服务器 B 上,这发生在我身上:最多 50 个并发用户不是问题,并且数据库运行良好,但是在用户数量超过 50 之后,数据库开始变慢。

两台服务器都有相同的数据库、相同的表、相同的存储过程、相同的应用程序,实际上它们是彼此的副本。

我怎样才能找出问题出在哪里?

这是配置文件:

[client]
pipe=
socket=MYSQL
port=3306
[mysql] no-beep
default-character-set=
server_type=1
[mysqld]
port=3306
datadir=E:/ProgramData/MySQL/MySQL Server 8.0\Data
character-set-server=
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
log-output=FILE
general-log=0
general_log_file="NS31525947.log"
slow-query-log=1
slow_query_log_file="NS31525947-slow.log"
long_query_time=10
log-error="NS31525947.err"
log-bin="NS31525947-bin"
server-id=1
lower_case_table_names=1
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
max_connections = 500
table_open_cache=3G
tmp_table_size=3G
thread_cache_size=100
myisam_max_sort_file_size=10G
myisam_sort_buffer_size=68G
key_buffer_size=61M
read_buffer_size=23M
read_rnd_buffer_size=256K
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=512M
innodb_buffer_pool_size=10G
innodb_log_file_size=1G
innodb_thread_concurrency=0
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=10000
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_relay_log=10000
sync_relay_log_info=10000
loose_mysqlx_port=33060
default_authentication_plugin = mysql_native_password

我还尝试将my.ini来自服务器 A 的服务器 B 放在服务器 B 上,但没有任何改变。


我输入了数据库状态引用 现在

网络状态

服务器状态

mysql php
  • 2 个回答
  • 260 Views
Martin Hope
Bee Tee
Asked: 2022-01-07 16:15:39 +0800 CST

一张桌子还是多张桌子?

  • -2

我正在构建一个 Web 应用程序(php/mysql)。可能会有很多用户(经理)。有一个表格(我们称之为“大师”),经理/用户将在其中输入大师列表。这些列表被使用 1 次,然后被清除,因此经理/用户可以开始一个新的大师列表。我的直觉是创建 1 个包含用户 ID 字段的表,该字段将把大师链接到输入它的经理/用户。这个大师表也有一个自动递增的 ID 字段。另一种选择是为每个用户创建一个新表(但我猜这是个坏主意)。

如果我留在 1 个表中,是否需要(或方法)“重置”大师表中的自动增量字段?如果它不能继续自动递增,它会不会中断?

我希望这很清楚,并感谢您的任何指导。

mysql php
  • 2 个回答
  • 44 Views
Martin Hope
Bing
Asked: 2021-09-26 18:55:55 +0800 CST

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

  • 1

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

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

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

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

mysql php
  • 2 个回答
  • 888 Views
Martin Hope
Rahul
Asked: 2021-06-25 03:07:38 +0800 CST

Ubuntu - Sybase - PHP 无法连接

  • 1

我正在尝试从在 Ubuntu(18.4) 系统上的 apache2 上运行的 PHP(7.4, 8.0) Laravel 连接 Sybase 17。我们正在使用 SQL Anywhere。Sybase 未安装在同一台服务器上。

我们收到此错误 - 警告:odbc_connect():SQL 错误:[unixODBC][驱动程序管理器]无法打开 lib '/opt/sqlanywhere17/lib64/libdbodbc17_r.so':找不到文件,SQLConnect 中的 SQL 状态 01000 /var/www/html/sybaseconnection.php 第 14 行

我们已经执行了以下步骤:

  1. 已经验证了 libdbodbc17_r.so 文件。
  2. 已获得必要的许可。
  3. 能够使用 Telnet 和命令行连接到 SQL Anywhere 17。
php ubuntu
  • 1 个回答
  • 300 Views
Martin Hope
W. G.
Asked: 2021-01-01 14:57:01 +0800 CST

使用 SQL 在表中输入准确值

  • 2

我需要将特定值插入到我正在使用 SQL 处理的表中(请参见下面的函数):

INSERT INTO *Table Name* (...) VALUES(...); 

将要存储在此表中的值是涉及另一种编程语言的值,这些编程语言有很多奇怪的符号,包括单个反斜杠、*、美元符号等。

我怎样才能准确地插入值,因为它们在这个表中?

例如,当我键入“\2”时,它需要在表中返回 \2 而不仅仅是 2。我无法手动输入两个反斜杠来获取 \2。这是因为我通过 HTML 接收来自另一个用户的输入并使用 PHP 将其发送到我的表。我遇到的问题是正在输入的带有 SQL 的这些特殊字符并不是我打算将它们作为值的方式。

有没有办法用预先调用的某个字符串函数准确地输入这些值?其他方法将不胜感激!

数据库的附加信息:

  • 服务器:通过 UNIX 套接字的 localhost

    服务器类型:MySQL

    服务器连接:未使用 SSL 文档

    服务器版本:5.6.49-cll-lve - MySQL 社区服务器 (GPL)


潜在答案: $mysqli 是否定义如下?(我称之为 $db。) $mysqli=mysqli_connect(...);

因此,该文字添加如下:

$query = "INSERT INTO Table (C1, ... Cn) VALUES('$C1', ... '$Cn')"; 
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $C1, ..., $Cn);
$stmt->execute();
mysqli_query($db, $query);
mysql php
  • 3 个回答
  • 148 Views
Martin Hope
apt605
Asked: 2020-07-21 07:42:35 +0800 CST

找不到要执行的“psql”

  • 1

我有一个在 Linux (AWS Centos) 服务器上运行的 bash 脚本。每当脚本执行 psql 时,标准输出中就会弹出一条奇怪但令人讨厌的警告消息:找不到要执行的“psql”。

奇怪的是 Postgresql 命令行 psql 运行得很好!但是它仍然会生成此错误消息。

对于进一步的上下文,bash 脚本是从 php 页面 (fastcgi/nginx) 中的 shell_exec 执行的。如果从命令行运行 bash 脚本,则不会看到警告。但同样,即使有警告,psql 确实运行正常。

有谁知道为什么会出现这个警告,以及如何消除它?

php bash
  • 2 个回答
  • 920 Views
Martin Hope
FunnelScr
Asked: 2020-07-06 19:14:45 +0800 CST

如何确保对 MySQL 表的两个或多个同时请求不会干扰

  • 1

假设我对我的数据库中的一个表有大约 1000 个同时请求,该表由这些语句组成(按顺序):

SELECT

INSERT or UPDATE (could be multiple)

DELETE

我想确保没有任何请求相互干扰,并且表处于下一个传入请求的更新状态。例如:

Request #1 comes in.

Request #2 comes in.

Request #1 starts to get processed.

Request #2 should start only when Request #1 is processed so that the data view is consistent and updated for the next request.

我在网上搜索了这种情况,发现了两件事可能会有所帮助:

  1. 交易

  2. 表锁定

但是当我阅读事务时,我发现当一个事务正在处理一行时,其他事务仍然可以出现并修改该行,这违背了我的目的。

同样在锁定的情况下,只能将列锁定在一种模式下,即读取或写入模式,这再次无法保持数据一致,因为在读取行时它可能会被更新并且刚刚读取的数据将成为旧版本的表实际上是现在。

有没有一种可靠的方法来实现这一点,可以确保没有请求干扰另一个请求,并且表处于下一个传入请求的更新状态?

如果这有帮助,我正在将 MySQL 与 PHP 一起使用。

mysql php
  • 2 个回答
  • 588 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve