如何做好mysql数据表的索引?
我用的mysql数据库,
char_id(角色ID号)
trade_type(交易类型,现在有39种类型,用1~39的int型表示)
money_type(货币类型,有四种货币,可以不必建索引)
date(10位int型的时间戳)
现在有一个表单,用户要根据角色ID,交易类型,时间进行记录查询,整张表有大概500W条记录,请问如何做索引好一些?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
WHERE TYPE IN (?,?,?) 这种固定参数的查询是不会全表扫描的 不信你explain一下看看
老大都回答了 你还说没人回答 切
没人回答,看来我的问题是个菜鸟问题了。。
可能我没有描述好~~~
在数据表里,trade_type字段就是用1~39这种数字表示的。
比如第一个记录,trade_type是2
第二个记录,trade_type是15
第三个记录,trade_type是15
第四个记录,trade_type是28
……
但是前台页面是用checkbox表示可以多选,那么用户在选15,28时,我就用的where trade_type in (15,28)来查询的,这不可避免为会全盘扫描,在500多W数据记录下,所以就麻烦了。。
trade_type 是多个值??? 那你表怎么设计的啊
谢谢老大。
但是最大的麻烦还是trade_type 这里在前端页面是39个checkbox来的,所以存在多选的可能,我用的in语句,就不可避免遇到全盘扫描,请问各位是怎么解决的啊?
时间可以单独做一个索引
其他两个类型你看是做复合索引还是单独建索引,自己试试吧