华为云首页
用户手册
云数据库 GAUSSDB(FOR MYSQL)_云数据库 GAUSSDB(FOR MYSQL)标准版-GaussDB(for MySQL)标准版数据库使用规范:数据库索引设计规范
云数据库 GAUSSDB(FOR MYSQL)_云数据库 GAUSSDB(FOR MYSQL)标准版-GaussDB(for MySQL)标准版数据库使用规范:数据库索引设计规范
时间:2024-09-12 17:34:00
数据库索引设计规范
- 每个InnoDB表强烈建议有一个主键,且不使用更新频繁的列作为主键,不使用多列主键。不使用UUID、MD5、字符串列作为主键。最好选择值的顺序是连续增长的列作为主键,所以建议选择使用自增ID列作为主键。
- 限制每张表上的索引数量,建议单张表索引不超过5个。索引并不是越多越好,索引可以提高查询的效率,但会降低写数据的效率。有时不恰当的索引还会降低查询的效率。
- 禁止给表中的每一列都建立单独的索引。设计良好的联合索引比每一列上的单独索引效率要高出很多。
- 建议在下面的列上建立索引:
- 在SELECT,UPDATE,DELETE语句的WHERE从句上的列。
- 在ORDER BY,GROUP BY,DISTINCT上的列。
- 多表JOIN的关联列。
- 索引列顺序:
- 区分度最高的放在联合索引的最左侧。区分度=列中不同值的数量/列的总行数。
- 尽量把字段长度小的列放在联合索引的最左侧。因为字段长度越小,一页能存储的数据量越大,IO性能也就越好。
- 使用最频繁的列放到联合索引的左侧。这样可以比较少的建立一些索引。
- 避免冗余的索引,如:primary key(id),index(id),unique index(id)
- 避免重复的索引,如:index(a,b,c),index(a,b),index(a),重复的和冗余的索引会降低查询效率,因为 GaussDB (for MySQL)标准版查询优化器会不知道该使用哪个索引。
- 在VARCHAR字段上建立索引时,需指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度即可。
一般对字符串类型数据,长度为20的索引,区分度会高达90%以上,可以使用 count(distinct left(列名, 索引长度))/count(*) 的区分度来确定。
- 对于频繁查询优先考虑使用覆盖索引。
覆盖索引指包含了所有查询字段的索引,不仅仅是WHERE从句GROUP BY从句中的列,也包含SELECT查询的列组合,避免InnoDB表进行索引的二次查询。
- 外键约束:
support.huaweicloud.com/usermanual-gaussdbformysql-std/gaussdbformysql_01_0052.html
看了此文的人还看了
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格
推荐文章
- 云数据库GaussDB(for MySQL)_兼容MySQL
- 连接GaussDB(for MySQL)数据库_华为云数据库GaussDB(for MySQL)_数据库连接
- 云数据库 GaussDB(for MySQL)与RDS for MySQL的区别
- 云数据库Gaussdb数据库索引_华为gaussdb__gaussdb 数据库
- 云数据库GaussDB(for MySQL)_云数据库_分布式数据库
- GaussDB如何建主键_数据库索引设计规范_高斯数据库如何建主键-华为云
- 云数据库Gaussdb快速入门_gaussdb连接__gaussdb案例
- GaussDB索引_GaussDB数据库索引_高斯数据库索引_华为云
- GaussDB免费的吗_华为gaussdb数据库_mysql免费数据库
- 云数据库GaussDB(for MySQL)数据备份_自动备份_手动备份