求求,给我屡屡思路我的数据库是这样的:有内容表(articles)
articles字段 dg_id id title fenlei zhuanti
(其中dg_id 和 id决定一篇文章,dg_id就是不同的年有不同的dg_id)如下
fenlei zhuanti叫做articles的特征项(还有些特征项没写)articlesdg_id   id     title    fenlei   zhuanti
  1      1      你好     政治      大豆
  1      2      大家     选集      甘肃篇
  1      3      呵呵     政策      半程展望
……                               
  2      1      求救     政治      大连大豆  
  2      2      谢谢     政治      甘肃篇
……fenlei表和zhuanti表,因为结构一样所以就用一个了
字段dg_id 跟 id 同articles,是决定一篇文章的,t_value就是名称,articles是关联的文章idfenleidg_id   id     t_value   parent_id   child_id  articles
  1      1      政治        0           14       1,2,4
  1      2      政治        0           23       7,86 
  1      3      选集        2           45       23
……                               
  2      1      政策        0           7        4,5,6   
  2      2      选集        3           51       67
……要求 页面有个下拉列表框,里面是articles的特征项(比如我选择特征项是fenlei)
那就把fenlei的前10项给列出来(不能重复,有上下翻页)
问题一(我是在articles表里查?还是在fenlei表里查那前10项,怎么查效率高,有50w的数据)比如查出来结果:1政治
2选集
3政策
……
10中国经济然后点击上面结果,把属于这个特征项的文章找出来
文章二(同样是:在哪个表里找?怎么效率高)宗旨是:根据不同的特征项来看文章
不知道我说清楚了没有?哪里不明白我给补充下~~

解决方案 »

  1.   


    如果(dg_id,id ) 在两个表中都是复合主键的话,则效率都差不多。那就把fenlei的前10项给列出来? 如何排序?
    select fenlei from articles group by fenlei limie 10; 建议你能提供测试用例。
      

  2.   

    要看你的结果是什么? 这些内容在哪个表中就从哪个表中取。
    select title,zhuanti from articles where fenlei='xxx'
      

  3.   

     问题一 连个表都一样吧 
    都是
    select distinct t_value  from t limit第二个应该在第二个表查找吧
    数据量那么大 将articles 拆分成in语句效率应该高吧