【问题标题】:Fast two table search?快速两表搜索?
【发布时间】:2014-03-07 13:06:42
【问题描述】:
CREATE TABLE item(
code TINYINT UNSIGNED NOT NULL,
name CHAR(20) NOT NULL,
UNIQUE KEY(name, code)) ENGINE = INNODB

CREATE TABLE buffer(
code TINYINT UNSIGNED NOT NULL,
name CHAR(20) NOT NULL,
PRIMARY KEY(name, code)) ENGINE = INNODB

我有上面的表格。我想以最快的方式执行以下操作:

在表 buffer 中添加新的 code and name pair 时,我想确保这对不存在于 2 个表中的任何一个上。 有什么真正快速的方法可以做到这一点,或者我必须先搜索表item,然后搜索表buffer,然后添加项目?

【问题讨论】:

  • 你能说得具体点吗?
  • 如果您查看the accepted answer here 80% 的问题已得到解答,您只需在此处转换答案以满足您的需求。
  • 把它扔到另一个方向,你不能在item表中添加一列buffered BOOLEAN并将其全部放在一个表中吗?这将是解决此问题的最优化方法,因为您已经拥有一个可以强制执行您要求的唯一密钥。
  • 这是对的,但缓冲区包含可能无效的数据...

标签: mysql


【解决方案1】:

以下教程检查(在注册期间)用户名/电子邮件是否已被占用。

Username Availability Check using PHP and Jquery - YouHack.me

Check Username Availability during registeration - SourceCodester

查看以上两个来源后,您将了解如何使用 jQuery 的 Ajax 功能在重新生成期间实时检查用户名可用性。 您可以在您的应用程序中实现相同的功能,您将检查代码和名称,而不是用户名可用性(代码的名称)是否存在。如果它存在,它将显示一条消息,表明该代码已经存在,如果它不存在,则不会显示一条消息。

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 2015-03-20
    • 2020-09-23
    • 2019-02-02
    相关资源
    最近更新 更多