美文网首页
MySQL中insert语句value和set的区别

MySQL中insert语句value和set的区别

作者: Hypercide | 来源:发表于2018-07-22 21:29 被阅读0次



    在标准的SQL语句中,插入一条语句是用:

    insert into table (field1,field2) values (value1,value2)
    

    而MySQL中提供了一条扩展语句:

    insert into table set field1 = value1,field2 = value2
    

    第一个是SQL标准,第二个是MySQL的扩展(也就是说只能用在mysql数据库中的)


    有人说它们是等价且效率是相同的,下面是测试:


    用来测试的表字段如下

    1.png
    标准SQL语句,执行时间为6.0ms
    insert into user(username,password,realname,addtime) values('test','test','test','12345678901')
    
    2.png

    MySQL扩展,执行时间为1.9ms

    insert into user set username='test',password='test',realname='test',addtime='12345678901'
    
    3.png
    可以看出,后者执行效率要远高于标准values语法。
    你只需要遍历一组键值对来创建你的insert语句,而不是使用values语法所需的两倍。


    所以,使用set语法的语句可以更短,更清晰,以高效率更快写入,并且可以有效避免在编写values子句时混合列顺序导致的拼写错误


    但是,在可移植性上面,只在MySQL上支持的set语法明显失去了优势,并且在多条插入上,它也同样鸡肋

    相关文章

      网友评论

          本文标题:MySQL中insert语句value和set的区别

          本文链接:https://www.haomeiwen.com/subject/ymtrmftx.html