- 论坛徽章:
- 0
|
本帖最后由 cenalulu 于 2013-04-28 13:56 编辑
表结构如下:- CREATE TABLE wiki_doc (
- `did` int(10) unsigned NOT NULL auto_increment,
- `cid` int(6) unsigned NOT NULL,
- `letter` char(1) NOT NULL,
- `title` int(10) NOT NULL default '0',
- `tag` varchar(250) NOT NULL,
- `summary` varchar(250) NOT NULL,
- `content` mediumtext NOT NULL,
- `author` varchar(15) NOT NULL default '',
- `authorid` mediumint(8) unsigned NOT NULL default '0',
- `time` int(10) unsigned NOT NULL default '0',
- `lastedit` int(10) unsigned NOT NULL default '0',
- `lasteditor` char(15) NOT NULL default '',
- `lasteditorid` mediumint(8) unsigned NOT NULL default '0',
- `views` int(10) unsigned NOT NULL default '0',
- `edits` mediumint(8) unsigned NOT NULL default '0',
- `editions` mediumint(8) unsigned NOT NULL DEFAULT '0',
- comments mediumint(8) unsigned NOT NULL DEFAULT '0',
- votes mediumint(8) unsigned NOT NULL DEFAULT '0',
- `visible` tinyint(1) NOT NULL default '1',
- `locked` tinyint(1) NOT NULL default '0',
- PRIMARY KEY (`did`),
- KEY `title` (`title`),
- KEY `cid` (`cid`),
- KEY `authorid` (`authorid`),
- KEY `letter` (`letter`),
- KEY `lastedit` (`lastedit`),
- KEY `time` (`time`)
- ) TYPE=MyISAM;
复制代码 我已经使用hash针对did字段进行了分区。但是我搜索字段通常是select title, tag, ... from wiki_doc where title= xxx。
这样我用did分区的话,就跟没有分没多大区别了。
我现在希望能够用title字段进行分区(忘掉hash(did)分区,重新开始分)。
问题是did是主键,我使用alter table wiki_doc drop primary key,报错。
我在http://stackoverflow.com/上查了下,有人给出了类似的答案:
先去掉did的自增,然后去掉primary key,在title上建primary最后再把自增加到did上,这样不知道可不可以?(我晚上回去试试)
请问像这种情况该如何分比较好,谢谢了! |
|