前段时间,很多人问我是否可以在数据库中写一些文章。就在我测试mysql数据库的性能时,出现了一个问题,就是存在大量重复数据。我记得很久以前我写过的。这是总结它的唯一方法。如果您在使用mysql时遇到此问题,我希望对您有所帮助。
注意:
本文不是数据库系列中的正式文章,有关mysql,MongoDB,redis,oracle等数据库系列的文章正在解决中。
事实上,是否插入重复数据的问题在于通常有两种想法:如水控制,第一种来自水源,第二种是水流动的路径。我们一直关注这两个想法:
问题
在我们的mysql数据库中,通常会有一些重复的数据。在某些情况下,我们允许重复数据,但有时我们还需要消除这些重复数据。我们如何对待它?
方法1:避免重复数据
也就是说,当我们设计表时,我们必须在数据上建立一个UNIQUE索引。通过插入,我们可以保证其唯一性,因此没有重复的数据。当然,您也可以直接在PRIMARY KEY中进行配置。效果是一样的。让我们看一下案例:下表中没有索引和主键,因此该表允许多个重复记录。
采访者:使用mysql数据库时如何处理重复数据?
目前,first_name,last_name可以重复,如果你不想在这里重复,有两个解决方案:
1,设置主双键模式
采访者:使用mysql数据库时如何处理重复数据?
现在无法插入重复数据。
2,添加唯一索引
采访者:使用mysql数据库时如何处理重复数据?
这两个看起来有点不同,但他们可以做同样的事情。此时我们可以插入两个重复数据,我们将收到错误。
当然,我们也可以在数据库中验证它:
采访者:使用mysql数据库时如何处理重复数据?
这里我们计算first_name和last_name的重复记录数,它们以两种方式设置,绝对是0。
方法2:指定插入时是否可以插入重复数据
这里我们在说明中使用Insert ignore和Insert。
(1)插入ignore in将忽略数据库中的现有数据,如果数据库没有数据,则插入新数据,如果有数据,则跳过此数据。这将保留数据库中的现有数据,并实现将数据插入间隙的目的。(2)否则插入,直接插入数据,无论数据库是否包含重复数据。
我们仍然是一个例子:
采访者:使用mysql数据库时如何处理重复数据?
现在我们可以看到它,也就是说,当执行第一个插入操作时,如果找不到数据库,则会直接插入新记录,因此记录的一行会受到影响,但在第二次插入时,数据库已经有了同样的情况,所以它不会被插入,0行会受到影响。当然,还有一条指令可以执行类似的功能来插入ignore,这将替换为。他说,如果有一个同一个主要或只有一个记录,它将被删除。插入新记录。
方法3:过滤重复数据
如果需要读取未重复的数据,可以使用SELECT语句中的DISTINCT关键字来过滤重复数据。
采访者:使用mysql数据库时如何处理重复数据?
您还可以使用GROUP BY读取数据表中未重复的数据:
采访者:使用mysql数据库时如何处理重复数据?
方法4:删除重复数据
这种情况相当于解决了水的问题。看下面的sql语句:
采访者:使用mysql数据库时如何处理重复数据?
当然,您还可以将INDEX(索引)和PRIMAY KEY(主键)添加到数据表中,以删除表中的重复记录。方法如下:
采访者:使用mysql数据库时如何处理重复数据?
上海IT外包服务网 链接:http://www.linemore.com