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
    • 最新
    • 标签
主页 / user-14694

Déjà vu's questions

Martin Hope
Déjà vu
Asked: 2022-11-11 04:26:35 +0800 CST

MySQL 8 复制:是否可以指定主控端一个特定端口用于复制,并且仅复制(不同于默认的 3306)

  • 6

主人身边。

在用于复制的 MySQL 8 中,是否可以指定主端用于复制的特定端口,并且仅指定与常规客户端连接到的默认 3306 不同的复制?

mysql
  • 1 个回答
  • 30 Views
Martin Hope
Déjà vu
Asked: 2022-11-11 03:32:25 +0800 CST

在 MySQL 主机名中,'%.exemple.com' 中的 '%' 是否涵盖主域 'exemple.com' 或仅涵盖其子域?

  • 5

在 MySQL 主机名中,%in是否也%.exemple.com包含主域exemple.com或仅包含其子域?

比如在这个

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'rep'@'%.exemple.com';

域也会exemple.com被允许吗?

mysql
  • 1 个回答
  • 20 Views
Martin Hope
Déjà vu
Asked: 2022-01-06 20:23:03 +0800 CST

MySQL 8.0 时间戳 CURRENT_TIMESTAMP 将日期设置为“0000-00-00 00:00:00”(在 5.7 中可以)

  • 0

表 T 有这个字段

+---------------+--------------+------+-----+-------------------+-----------------------------+
| Field         | Type         | Null | Key | Default           | Extra                       |
+---------------+--------------+------+-----+-------------------+-----------------------------+
| updated       | timestamp    | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------------+--------------+------+-----+-------------------+-----------------------------+

在 MySQL 5.7 中,更新记录和设置updated=null会自动设置updated为当前日期时间

UPDATE T SET ...,updated=null WHERE k=123

==> 

+---------------------+
| updated             |
+---------------------+
| 2022-01-05 22:52:05 |
+---------------------+

但是在 MySQL 8.0 中做同样的事情,给出

+---------------------+
| updated             |
+---------------------+
| 0000-00-00 00:00:00 |
+---------------------+

我该如何解决这个问题,这是 MySQL 错误,还是新设置(或行为改变)?

null mysql-8.0
  • 1 个回答
  • 1123 Views
Martin Hope
Déjà vu
Asked: 2021-12-26 19:02:07 +0800 CST

时间戳类型是否有(隐藏的)毫秒?

  • 2

该updated列创建为

| updated | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

一个简单的SELECT给

+---------------------+
| updated             |
+---------------------+
| 2021-12-25 00:15:47 |
+---------------------+

不幸的是,updated没有创建为timestamp(3).

有什么方法可以从中提取更多的准确性updated?(MySQL 是否存储比秒更高的精度,即使它只显示秒数?)

mysql-5.7 timestamp
  • 2 个回答
  • 2129 Views
Martin Hope
Déjà vu
Asked: 2021-03-22 17:34:10 +0800 CST

在同一个查询 INSERT 中,两个 VALUES 是 NOW() 可以返回不同的时间吗?

  • 13

我遇到了一个类似的查询

INSERT INTO mytable (id, Created, Updated) VALUES (null, NOW(), NOW())

具有列定义

| Created   | datetime |
| Updated   | datetime |

在这种情况下,MySQL 会将 NOW() 值设置为当前时间并将相同的值返回给两个调用,还是该查询会运行(不太可能的)风险,即 Created 和 Updated 有两个稍微不同的时间?

注意:我无法更改字段类型。

mysql query
  • 4 个回答
  • 2893 Views
Martin Hope
Déjà vu
Asked: 2020-06-16 05:41:37 +0800 CST

MySQL UUID() 行为

  • 2

4 年前,我在 SO 上回答了一个问题,“如何为每一行批量设置 UUID”。

我试了之后回答

UPDATE table SET uuidcol = UUID();

它对我有用,但大约一半(似乎)的人报告说它不起作用,说所有行的 ID 都是相同的。

所以今天,我再次尝试,每次删除列,并创建一个具有新类型的新列,例如

text, char(36), varchar(36)

它再次起作用,每次都为每行创建一个唯一的 UUID。

是什么让它对其他人不起作用?
比如发动机?(在 MySQL 5.7 上使用 InnoDB)

编辑

做了另一个测试

  • 创建一个简单t的表uu varchar(36)
  • uu插入10,000,000行null
  • 做了UPDATE t SET uu=UUID();

并且所有 10M 行都有不同的唯一UUID。

mysql innodb
  • 3 个回答
  • 2960 Views
Martin Hope
Déjà vu
Asked: 2017-10-29 22:38:43 +0800 CST

实现一个查询,两种策略

  • 1

表尚未创建,但为了简化,有一个groups和一个items表。一个组包含一个项目 ID(和一个组 ID)。并且多个组可能包含相同的项目 ID。

例如

CREATE TABLE groups (
          gid int,
          iid int,
          primary key(gid,iid)
);
CREATE TABLE items (
          iid int primary key,
          label char(5)
);

并在其中放入一些数据,以帮助可视化即将出现的问题

insert into items values (1,"pen"),(2,"gum"),(3,"cat"),(4,"dog"),
                         (5,"hug"),(6,"art"),(7,"fun");

insert into groups values(1,1),(1,2),(1,3),(2,4),(2,5),(2,6),(3,1),
                         (3,4),(4,2),(4,3),(4,5),(4,6),(4,7);

检索多个组(例如组 1、2、3、4)的项目使用 aDISTINCT删除重复项

(1) SELECT DISTINCT i.iid,i.label FROM groups g JOIN items i ON g.iid=i.iid 
    WHERE g.gid in (1,2,3,4) ORDER BY i.iid;

但是由于表最终将包含更多数据,使用子查询的查询会更有效吗

(2) SELECT i.iid,i.label FROM items i 
    JOIN (SELECT DISTINCT iid FROM groups WHERE gid IN (1,2,3,4)) AS s
    ON i.iid=s.iid ORDER BY i.iid;

因为distinct只适用于项目 ID,尽管使用子查询的开销?

或者@hypercube 建议的这个(见评论):

(3) SELECT i.iid,i.label FROM items AS i 
    WHERE EXISTS
       (SELECT * FROM groups AS g WHERE g.gid IN (1,2,3,4) AND i.iid=g.iid)
    ORDER BY i.iid

供参考,最终

  • items 表将有50~100k行
  • 一组可能有5~10k个项目
  • 单次查询选择的groups id在5~20范围内
  • 一个项目属于 2 个选定组的概率:50%
  • 一个项目属于 3 个选定组的概率:30%
  • 一个项目属于 4 个选定组的概率:10%
mysql performance
  • 1 个回答
  • 49 Views
Martin Hope
Déjà vu
Asked: 2017-10-28 19:44:02 +0800 CST

InnoDB 表结构的最后更改日期

  • 2

我想知道如何确定ALTER TABLE...对给定表进行的最后一次更改 () 是什么时候。

有一个旧答案可用,但不幸的是,它不适用于 InnoDB 表。

查看frm文件日期时间,这行得通吗?

-rw-r-----   1 mysql    mysql       18622 Oct 24 21:07 mysql/data/mydb/mytable.frm
-rw-r-----   1 mysql    mysql     2114688 Oct 28 06:26 mysql/data/mydb/mytable.ibd

Oct 24 21:07似乎大致对应于上次执行结构更改的时间。
那是可靠的信息吗?

mysql innodb
  • 1 个回答
  • 1307 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