这个表应该怎样建索引呢

php中文网
发布: 2016-06-23 14:17:26
原创
1085人浏览过

-- -- 表的结构 `group_member`-- CREATE TABLE `group_member` (  `member_id` int(10) unsigned NOT NULL auto_increment COMMENT ' 成员id',  `group_id` int(10) unsigned NOT NULL COMMENT '组id',  `add_time` int(10) unsigned NOT NULL COMMENT '添加时间',  PRIMARY KEY  (`member_id`)) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;-- -- 导出表中的数据 `group_member`-- 
登录后复制


这个是组成员表,成员和组唯一。
经常涉及到的查询需求是通过组id查询组内的所有用户。

那需要建组id和成员id唯一索引不,或是在添加接口内检查;不建此索引。
索引会浪费导致更新删除的速度减慢,两者一起查的情况不多;建此组合索引的作用仅是为保证数据的正确性。

组合索引可以用到最左前缀,那个group_id 还是有必要建索引的。建了组合索引,将group_id放在前面还是可以用上的。

到底怎样建会好一点,大神们多给给意见阿;谢谢啦 。。


回复讨论(解决方案)

经常涉及到的查询需求是通过组id查询组内的所有用户。
在 group_id 上建立索引

同意楼上的,建立索引规则之一:索引应该建在选择性高的字段上

详情参考http://wenku.baidu.com/view/b67041ef172ded630b1cb6b9.html
登录后复制

memberid是主键了,明显建立个group作为索引就好了~

memberid是主键了,明显建立个group作为索引就好了~

看来我要省唯一索引,只能在接口上查一次。

你建立group为索引后,起到的效果和你说的“建此组合索引的作用仅是为保证数据的正确性。”,因为和索引关联的就是主键id

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号