创建不存在的表与显示类似的表

  • 本文关键字:显示 创建 不存在 mysql
  • 更新时间 :
  • 英文 :


在MySQL中,哪种做法更好?始终使用";如果不存在创建表";,或者首先使用";将表格显示为";在做桌子之前?

我必须定期保存一个页面,其中的表可能存在,也可能不存在(有时,它在不使用时会被故意删除(。以前,我经常做";将表格显示为";以在插入新条目之前检查该表是否存在。但我把它改成了";如果不存在则创建表";。不管怎样,我只是做一个";插入。。"关于重复更新";以添加新数据或更新现有数据。

我不知道如何对此进行基准测试,这就是我为什么要问的原因。

这些操作的性能并不重要。

关键是比赛条件。如果你使用CREATE TABLE IF NOT EXISTS,你知道它会发生或不会发生。如果两个线程碰巧在执行此语句,其中一个线程将成功,另一个线程不会受到负面影响。

如果在两个线程中都使用了SHOW TABLE LIKE,那么两个线程都可以检测到该表不存在,并且在尝试创建该表时,其中一个线程将失败。

因此,使用CREATE TABLE IF NOT EXISTS来缓解比赛条件。此外,一般来说,使用数据库提供的功能比使用自己的功能要好。

CREATE TABLE IF NOT EXISTS是MySQL提供的选项,很好用。若表将不存在,则此语句将创建,否则将跳过。

另一方面,如果您首先通过show table like检查表的存在性,然后跳过或根据条件/检查的结果创建。最终,您将增加脚本或程序的一个步骤或运行时间,以实现您可以在一个步骤中实现的相同功能。

最新更新