暂无图片
MySQL索引的创建原则
我来答
分享
小林同学
2023-12-06
MySQL索引的创建原则

MySQL索引的创建原则

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
yBmZlQzJ

最适合创建索引的列是出现在WHERE或ON子句中的列,或连接子句中的列而不是出现在SELECT关键字后的列。
索引列的基数越大,数据区分度越高,索引的效果越好。
对于字符串进行索引,应该制定一个前缀长度,可以节省大量的索引空间。
根据情况创建联合索引,联合索引可以提高查询效率。
避免创建过多的索引,索引会额外占用磁盘空间,降低写操作效率。
主键尽可能选择较短的数据类型,可以有效减少索引的磁盘占用提高查询效率。

暂无图片 评论
暂无图片 有用 4
打赏 0
暂无图片
lu9up的数据库笔记

索引创建主要是为提高检索性能,优化执行计划。
对表来说,索引一般建在数据量大,且经常访问的表中,索引的使用频率最好一天一次以上,要不然没有建索引的必要,因为数据量大的表,维护索引也需要不小的代价。
对字段来说,主要针对出现在where后面的字段建索引,并且字段的选择性比较好(唯一值个数多),一般做等值连接条件的字段。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
将mysql的数据转存到Hadoop做实时统计分析,应该采用怎样的解决方案?
回答 1
实时,实时啊。为什么要有实时分析?实时分析你还是在mysql上做吧。SQL写的好点也是秒出。
OGG同步Mysql抽取进程中断无报错生成
回答 1
给你ChatGPT搜了一下,你可以参考看看检查连接稳定性:确保源数据库和目标数据库之间的网络连接是稳定的,并且没有任何网络问题导致抽取进程中断。检查网络连接是否频繁断开或出现延迟,并尝试解决任何与网络
innodb_flush_log_at_trx_commit=0 存在的意义是什么?
回答 2
已采纳
总有极端。我也认为哪里那么巧正好断电?我就遇到过一次,不是这个参数,而是syncbinlog。也是012这种。那个值写了16.结果就是binlog不全。奇葩吧。理论如果没有极端问题,都不用写日志。但是
docker里mysql8 gtid模式设置主从不生效,提示全局得gtid是关得,配置文件在虚拟机正常;docker里得必须在shell手动执行命令配置gtid=on才行,但是重启不报错配置,怎么解决?
回答 1
确认下docker里启动mysql时使用的配置文件是不是你提供的那个配置文件。
SQL:多个left join
回答 2
语法没有问题呀,如果没有表C的数据也很正常啊,说明表b中的code与表c中的code根本就没有匹配的。
MySQL dump 可以直接导出分区数据吗?按分区名来
回答 2
已采纳
mysqldump是逻辑导出,只有表创建语句和数据。除此之外可以使用mysqldumpwhere条件导出数据。
Oracle,PostgreSQL,Mysql中浮点型如何产生inf、-inf,NaN?
回答 1
把你的报错信息,SQL语句,执行的数据库搞出来看看
mysql多表join为什么会选错驱动表
回答 2
在MySQL中使用多表JOIN时,选择驱动表(也称为连接表)是非常重要的。驱动表是用于发起连接的表,它决定了连接的顺序和方式。如果选择错误的驱动表,可能会导致查询结果不正确或者性能问题。选择错误的驱动
mysql int bigint tinyint区别?
回答 1
范围不一样举例子来说tinyint里面只有是128到127大概250多个数字。你写130是写不进去的。但是如果是无符号的tinyint就可以进去。但是你写300还是写不进去。()里面的没有,是补位用的
MySQL ibdata1文件占用1.7T,实际数据才不到30G,除了dump数据,重建在导数据方法,有没有其他更好的方案?
回答 4
不知道你用的什么版本的mysql哈,不知道你是不是独立表空间,你可以试下先找到哪些表的碎片比较大:selecttableschema,tablename,datalength/1024/1024/10