zoukankan      html  css  js  c++  java
  • mysql性能优化总结(MySql避免重复插入记录的几种方法)

    如果我们创建了(area, age,salary)的复合索引,那么其实相当于创建了:
    (area,age,salary),(area,age)、(area)三个索引,这被称为最佳左前缀
    特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。
    例:
    select * from test where area='11'
    select * from test where area='11' and age=1
    select * from test where area='11' and age=1 and salary=2.0
    以上有索引

    select * from test where age=11
    select * from test where age=1 and salary=2.0
    以上无索引
    -----------------------------------
    如果在查询中需要匹配多个字段的条件,可以把这几个字段做个联合索引,效率要比在每个字段上加索引高多了

    MySql避免重复插入记录的几种方法

    我们实现这个一个需求:如果表中记录存在我们就更新,我们表中记录不存在我们就插入

    我们可以给表中的某个字段添加一个唯一索引

    然后使用replace into 来实现

    返回值:
    REPLACE语句会返回一个数,来指示受影响的行的数目。该数是被删除和被插入的行数的和
    受影响的行数可以容易地确定是否REPLACE只添加了一行,或者是否REPLACE也替换了其它行:检查该数是否为1(添加)或更大(替换)。

    示例:
    # eg:(phone字段为唯一索引)

    复制代码代码如下:

    REPLACE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test569', '99999', '123');


    另外,在 SQL Server 中可以这样处理:

    https://www.cnblogs.com/printN/p/7233645.html

  • 相关阅读:
    回文字符串问题
    Linux添加nfs共享存储盘
    解读nginx配置
    制作自己的nginx rpm包
    linux编译安装时常见错误解决办法
    redis单机及集群安装
    nginx ssl
    vsftp配置详解
    Linux-文件系统的简单操作
    Linux-Vim编辑器
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/7905185.html
Copyright © 2011-2022 走看看