感谢 @zgm @serco 以及炮哥的解答。 :plus1:
我以前彻底的混淆了这两种查询的处理流程,他们两个查询时的策略完全不一样的。
query 1
-- ms 级别
-- token 已经加了索引
select count(*) from devices where token="xxx"
query 2
select count(*) from devices
在 Query1 中,mysql 会考虑 devices_token, devices_token_prefix_index 两个索引,最终选择了 selectivity 最高的索引 devices_token。
这个查询是 ms 级别的。
在 query 2 中,MySQL optimizer 会考虑使用以下三个索引:
device_token_prefix_index 体积最小,所以会优先用它。
在 InnoDB 存储引擎中,primary key 是 clustered index(最大的索引),使用它来处理 select count(*) from table_name
最慢。
但这样牵扯出一个新的疑问:
除了 constant table,所有的 select count(*) from table_name
都是一种低效的查询,是这个样子吗?
:plus1:
去深圳看望多年的老基友 @_samqiu
:plus1:
楼主,慎用 sti,后期维护特别头大
有时候多态是个更好的替代方案。
http://railscasts.com/episodes/394-sti-and-polymorphic-associations
:plus1:
占个楼,备用。
视图无法创建索引。
推荐 彩程,很不错的公司。
👍
这是个生态系统,需要掌握的东西很多,楼主慢慢来,不要着急
离职人员说的才是实话。
我又在知乎上看到一个关于 Google 面试流程很详细的解答
跟别的大公司一样,狗家是不会在拒绝了面试者之后给出具体理由的。连是不是面试本身的原因都不会说,更不会说是哪一轮。狗家的流程里,面试官是很难一己之力毙掉一个候选人的,除非你那一轮真的很烂。全部 5-6 轮的面试官的评价都要送到 Hiring committee 那里,然后 HC 会看每一轮的详细记录来做决定。当然,如果某一轮真的很屎,那单独因为一轮挂掉也是很正常的。
总之 Max Howell 本人其实并不知道他是怎么被拒的,除非他某一轮真的面的特别屎。
其次,invert binary tree 是个什么鬼?简单的左右翻转?那这还真是面试官放水了,或者就是偶尔会出现的热身题。我见过的热身题都比这个难多了。二三十行的 CS101 水平的题目任何哪怕没有专门准备过面试题的人随手写也是基本素质。所以如果真的是这么一个左右翻转的题没搞定,那确实被拒合理。拿这个案例批评白板面试和算法面试都是不合适的,更合适的例子多了去了。但是 Max Howell 做不出左右翻转是一件很奇怪的事。所以,或许题目并不是左右翻转?而是以某一个 node 为轴,轴对称旋转从树变成图?那作为面试题确实太难了。这种时候可以落井下石骂狗家魂淡。
所以我在想,Max 真会扯犊子啊。
人家 Google 本来就看中算法,被拒只是说明彼此不合适,也不至于如此生气吧。
我倒觉得 Max 自尊心好强啊。
谁能带个投影仪啊?
只要能投影就行啊,你可以带来吗?
大牛
请管理员置顶,多谢。
@lgn21st
@luoping0425 罗平,你来吗?求带投影仪,哈哈。
我的 VPS 今天也被黑了,郁闷。。。
:plus1:
其原理是不是把 n+1 的 cache 查询减少到 1 次查询?
terry 也结婚了吗