最近遇到一个问题:高并发环境下,如何避免一张表里的某些列不要重复。

我这样回答的(被“高并发”给骗了,傻傻地往复杂里想):

1. 查找和插入这两个操作做成一个事务,对整张表加锁。。。是不是很low的想法?

2. 那就允许临时的不一致性,不管三七二十一,随便插,在查询、修改、删除的时候将多余的行删掉就好了,即保证最终一致性即可。。。好像效率高了一点,但是好麻烦啊。。。

面试官跟我说,知不知道“唯一索引”,突然间就蒙了(⊙o⊙)…

其实就是unique啦,这也从侧面表现出自己这方面的基础不够扎实,居然没有第一时间想到最简单的做法,sql标准本身就是支持这样一个需求的!

具体怎么做呢?

可以在声明表的时候就加入这样一个约束(下面是mysql的语法):

create table Test ( id INT NOT NULL, name VARCHAR(30) unique, phoneNumber VARCHAR(20), password VARCHAR(32), primary key(id), unique key pn (phoneNumber) );

也可以在建表后增加或删除索引:

CREATE UNIQUE INDEX pw on Test(password);

ALTER TABLE Test DROP INDEX pn;

试一下

首先建表:

在mysql中unique唯一索引的作用_mysql唯一索引和unique相关推荐

  1. mysql数据库索引的作用_mysql数据库索引和引擎

    1. 数据库索引 1.1 索引作用 当我们在数据库表中查询数据时,若没有索引,会逐个遍历表格中的所有记录,表格中数据记录量大时很耗时.建立索引就像创建目录一样,直接通过索引找到数据存储位置,加快查找. ...

  2. mysql中的主键地作用_mysql主键概念及作用

    mysql主键概念及作用 发布时间:2020-04-23 11:15:38 来源:亿速云 阅读:217 作者:三月 本文主要给大家介绍mysql主键概念及作用,希望可以给大家补充和更新些知识,如有其它 ...

  3. MySQL中的聚簇索引、非聚簇索引、联合索引和唯一索引

    一.索引类型 索引根据底层实现可分为B-Tree索引和哈希索引,大部分时候我们使用的都是B-Tree索引,因为它良好的性能和特性更适合于构建高并发系统. 根据索引的存储方式来划分,索引可以分为聚簇索引 ...

  4. mysql 加索引不起作用_mysql加索引及索引失效的情况

    前言:B+TREE索引的本质是多路绝对平衡查找树,磁盘指针,相当于书的目录,索引不是越多越好. 一:如何加索引 1.PRIMARY  KEY(主键索引) mysql>ALTER  TABLE   ...

  5. mysql唯一索引什么意思_MySQL唯一索引什么意思

    如果确定某个数据列只包含彼此各不相同的值,在为这个数据列创建索引的时候,就应该用关键字UNIQUE把它定义为一个唯一索引. Mysql会在有新纪录插入数据表时,自动检查新纪录的这个字段的值是否已经在某 ...

  6. mysql中添加索引的命令_mysql添加索引命令

    1.PRIMARY  KEY(主键索引) mysql>ALTER  TABLE  `table_name`  ADD  PRIMARY  KEY (  `column`  ) 2.UNIQUE( ...

  7. mysql的索引的作用_数据库索引的作用,优点和缺点

    为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能. 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性. 第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因. 第 ...

  8. delimiter mysql_详解 Mysql中的delimiter定义及作用

    初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程.触发器.函数等. 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其 ...

  9. mysql中json_extract函数的使用?作用是什么?

    需求描述: 今天看mysql中的json数据类型,涉及到一些使用,使用到了函数json_extract来 获取json字段中某个key的值,在此记录下. 操作过程: 1.查看包含json字段的表信息 ...

  10. MySQL中的SQL Mode及其作用

    点击上方"蓝字" 关注我们,享更多干货! 与其它数据库不同,MySQL可以运行在不同的SQL Mode下.SQL Mode定义MySQL应该支持什么样的SQL语法,以及它应该执行什 ...

最新文章

  1. R语言使用upper.tri函数、lower.tri函数、diag函数改变matrix矩阵上三角形、下三角形、对角线的数值
  2. docker 安装centos7并SSH远程连接
  3. python游戏编程入门电子书-请问自学 Python 有必要买课程吗?
  4. nginx proxy svn 加快_Hexo+Nginx+SVN搭建网站
  5. 电大 计算机应用基础 专科 教材,2016年电大计算机应用基础(专科).doc
  6. 《scikit-learn》随机森林之分类树
  7. 三十年软件开发之路:老码农的自我修养!
  8. prestashop后台如何删除订单
  9. Python中的迭代是什么意思?
  10. idm老是下载到99多就停止了 idm下载中断后无法继续下载
  11. xshell6个人版解除窗口限制(亲测可用,需卸载当前xshell6)
  12. mac每次执行mvn -v命令要先执行source ~/.bash_profile才生效
  13. kerberos认证相关概念和流程
  14. 端午节祝福的html,端午节祝福语大全(打油诗版)
  15. 《解救吾先生》TC枪版1.07GB迅雷bt种子ed2k下载
  16. java+s2sh+mysql水费系统
  17. 高精度定位的几种解决方案
  18. ApacheCon精彩回顾|思科网讯DolphinScheduler与k8S整合实践,提高大数据处理效率!...
  19. 一文看懂描述性分析、诊断性分析、预测性分析、指导性分析
  20. dell 如何给raid分区_DELL 服务器RAID磁盘阵列配置图解

热门文章

  1. 卡西欧计算机做英语,卡西欧的这个小萌物 原来是台英语学习机
  2. 超详细VRRP基础配置
  3. Centos7安装sqliteman
  4. 各种浏览器UserAgent一览表(桌面+移动)
  5. vue项目动态拼接图片地址方法
  6. virtualxposed使用教程_VirtualXposed框架
  7. [3D分割 Benchmak] ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes
  8. 如何部署局域网即时通讯软件
  9. 微信朋友圈 腾讯服务器,朋友圈@微信能得一面红旗?腾讯服务器一度宕机
  10. cmd xcopy 拷贝文件夹_如何使用Xcopy复制文件夹及其子文件夹?