代码之家  ›  专栏  ›  技术社区  ›  ParisNakitaKejser

SQL性能(MySQL)

  •  1
  • ParisNakitaKejser  · 技术社区  · 14 年前

    我有这个标签,

    CREATE TABLE `forum_rank` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `user_id` int(11) NOT NULL DEFAULT '0',
      `rank` int(11) NOT NULL DEFAULT '0',
      `forum_id` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    

    现在我问一下什么是最好的表演,它的*或alle感觉像这样2例。

    select * form forum_rank;
    

    select id, user_id, rank, forum_id from forum_rank;
    
    2 回复  |  直到 14 年前
        1
  •  4
  •   Florin Dumitrescu    14 年前

    您应该显式指定列。否则,数据库引擎首先必须找出表的列是什么(解析*运算符),然后执行实际的查询。

        2
  •  4
  •   duffymo    14 年前

    我认为这里的表现不会有问题。有一个更好的理由更喜欢第二个习惯用法:如果添加额外的列,代码不太可能中断。