mysql建表时加索引

jiaweiqq123 2011-11-18 03:35:37
conn1=MySQLdb.connect(host="165.124.222.222",user="root",passwd="Bluekey_22",db="TraceRoute")
cur1 = conn1.cursor()
CREATETABLE = """create table if not exists TraceRoute.router(id int unsigned not null auto_increment,ip varchar(16),
domainname varchar(60),address varchar(120),latitude varchar(12),longitude varchar(12),
asnumber int unsigned,type tinyint,primary key(id),index(id,ip,type))"""
cur1.execute(CREATETABLE)
...全文
708 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2011-11-18
  • 打赏
  • 举报
回复
id应该是主键吧
primary key(id),
index(ip),
index(type)
shine333 2011-11-18
  • 打赏
  • 举报
回复
index(id),index(ip),index(type)
jiaweiqq123 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nicenight 的回复:]

index(id,ip,type)
这个是复合索引,与你单个创建的索引是不一样的。

对于你上述的复合索引在如下的情形下才会有效:
. 使用 id
. 使用 id ip
. 使用 id type

其它情形的查询是不会使用索引的。

而对于单个的索引,你在使用任意一个索引列时只要不在异常情况(如使用"%xx"的查询之类)都会使用索引。
[/Quote]谢谢,我要是想在建表时,就要单个的索引的该怎么加索引呢?
nicenight 2011-11-18
  • 打赏
  • 举报
回复
index(id,ip,type)
这个是复合索引,与你单个创建的索引是不一样的。

对于你上述的复合索引在如下的情形下才会有效:
. 使用 id
. 使用 id ip
. 使用 id type

其它情形的查询是不会使用索引的。

而对于单个的索引,你在使用任意一个索引列时只要不在异常情况(如使用"%xx"的查询之类)都会使用索引。
jiaweiqq123 2011-11-18
  • 打赏
  • 举报
回复
其中index(id,ip,type)我的本意是想给id,ip,type单独都加索引,这样可以嘛?还是应该改为:
index(id,ip,type)----index(id),index(ip),index(type)?

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧