V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
judezhan
V2EX  ›  程序员

数据库 SELECT 问题

  •  
  •   judezhan ·
    judezhan · 2014-05-21 11:40:12 +08:00 · 2978 次点击
    这是一个创建于 3842 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在开发的过程中,如果你要根据某个条件从数据库中获取一条记录的信息,那你会选择select * 还是指定需要返回的数据?

    这么说可能比较模糊,我们来假设一个场景。

    一个典型的MVC架构中,你的User Model中有一个方法提供根据用户ID来获取该用户所有信息的功能。那你会写SELECT * 还是说只SELECT需要的数据?
    8 条回复    2014-05-21 21:20:03 +08:00
    34D
        1
    34D  
       2014-05-21 11:43:26 +08:00
    你是处女座吗?

    我反正是select需要的数据。
    P99LrYZVkZkg
        2
    P99LrYZVkZkg  
       2014-05-21 11:46:02 +08:00
    当然是需要的,性能要高,而且安全。

    我见过某大平台 select * 结果是json里面包含用户密码。
    MasterYoda
        3
    MasterYoda  
       2014-05-21 11:52:36 +08:00
    当然是需要的。
    即使需要全部的时候,我也喜欢把所有列打出来,以后表结构变更时导致的问题会少一些。
    judezhan
        4
    judezhan  
    OP
       2014-05-21 12:26:11 +08:00
    @34D 你还真是空啊,不是刷推,聊Q就是逛V2,你们公司请了你这样的员工,看来是不想IPO了。。。
    mengzhuo
        5
    mengzhuo  
       2014-05-21 12:40:34 +08:00
    这竟然还有疑问……
    必须是按需取数据啊,就算没有ORM,
    你觉得DBA会让你这么写么
    dong3580
        6
    dong3580  
       2014-05-21 12:44:29 +08:00
    @judezhan
    最好要用具体的名称代替 *, * 更耗费时间和性能。
    34D
        7
    34D  
       2014-05-21 12:57:55 +08:00
    @judezhan 草,你自己这边发帖,那边刷推,还说我。/咒骂
    ctoicqtao
        8
    ctoicqtao  
       2014-05-21 21:20:03 +08:00
    这个问题呢,我最近用Entity Framework开发的过程中发现,如果select * 的话,会把关联有外键的数据全部拉出来,,也可能是我技术的问题,然后无奈的情况下,只能返回一个匿名对象。。把需要的数据拉出来。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5396 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:09 · PVG 17:09 · LAX 01:09 · JFK 04:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.