手把手教你PolarDB-X中的表设计 — 用户表

本文介绍了在PolarDB-X中如何设计用户表,以应对注册、登录等业务操作。通过DRDS模式和AUTO模式的示例,展示了如何利用全局索引优化查询效率,确保唯一性,并提供了测试环境的验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本系列旨在描述一个具体的业务场景,给出建表的例子,帮助大家更好的使用PolarDB-X。本期的主题是:用户表。

需求描述

大多业务都会有一张用户表,用来存用户的数据,例如这样一张用户表:

user_id bigint AUTO_INCREMENT,
  user_name varchar(64),
  mobile_phone varchar(64),
  email varchar(64),
  enc_password varchar(256),
  address varchar(128),
  other_info1 varchar(128),
  other_info2 varchar(128),
  PRIMARY KEY (user_id)
)

对这张表,一般会有以下几种业务操作:

● 注册,特点是要保证用户名、手机号、邮箱等唯一:

INSERT INTO users VALUES (?, ?, ?)

● 登录,现在大多数APP都支持手机号、邮箱地址、用户名等多个维度进行登录,所以会有多种类型的SQL:

//按照用户名(user_name)进行登录:
SELECT *
FROM users
WHERE user_name = ?;

//按照手机号(mobile_phone)进行登录:
SELECT *
FROM users
WHERE mobile_phone = ?;

//按照邮箱(email)进行登录:
SELECT *
FROM users
WHERE email = ?;

● 登录后,系统内一般会使用用户ID(user_id)查询或者更新用户信息:

SELECT *
FROM users
WHERE user_id = ?;

UPDATE users
SET xxxx = ?
WHERE user_id = ?;

对于这样的一张表,我们在PolarDB-X中该如何设计呢?

这里我们根据数据库的MODE(PolarDB-X中数据库的MODE参数:https://help.aliyun.com/document_detail/416411.html),给出两种示例:

DRDS模式

在DRDS模式的数据库中,我们需要设计表的分区键。

users表的查询条件有user_id、user_name、mobile_phone、email,这四种条件的查询的量都差不多,都属于在线类查询。对于传统的分库分表中间件来说,一个表的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值