豫ICP备17040950号-2

阿里巴巴达摩院

“达摩院”这一名称来自 DAMO 的音译,全称为 The Academy for Discovery, Adventure, Momentum and Outlook(探索、冒险、动力和远景研究院),而取“达摩”一词,也有借鉴武侠小说中达摩代表武学最高修为境界之意。

代码中的特殊注解 -- TODO、FIXME、XXX的作用

在阅读一些开源代码时,我们常会碰到诸如:TODO、FIXME和XXX的单词,它们是有其特殊含义的。

// TODO + 说明:
如果代码中有该注释,说明在该注释处有功能代码待编写,待实现的功能在说明中会简略说明。

// FIXME + 说明:
如果代码中有该注释,说明该注释处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。
该处的注释在eclipse中的error tap中可以看到。

// XXX + 说明:
如果代码中有该注释,说明注释处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进,要改进的地方会在说明中简略说明。

eclipse中特殊的注释:
在eclipse中,TODO、FIXME和XXX都会被eclipse的task视图所收集。在项目发布前,检查一下task视图是一个很好的习惯。

MySQL索引背后的数据结构及算法原理

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。

文章主要内容分为三个部分。

第一部分:主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。

第二部分:结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。

第三部分:根据上面的理论基础,讨论MySQL中高性能使用索引的策略。

月薪3k和月薪3W的程序员到底区别在哪?

关于薪资,是每个上班族最为关心的问题。

月薪3k和月薪3W的程序员,到底有什么区别 ?都是做程序开发,从事编程工作,为什么悬殊这么大呢?

月薪3k和月薪3W的程序员到底区别在哪?

IT行业相对在其他行业中比较高薪,但并不是每个人都能拿到高薪,程序员薪水有高有低,有的人一个月可能拿10k,20k

,甚至更多,有的人可能只有3k,5k。

mysql千万级大数据SQL查询优化30条经验

  • 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

  • 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0

  • 3.应尽量避免在 where 子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。

  • 4.应尽量避免在 where 子句中使用or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num=10 or num=20可以这样查询:select id from t where num=10 union all select id from t where num=20

  • 5.in 和 not in 也要慎用,否则会导致全表扫描,如:select id from t where num in(1,2,3) 对于连续的数值,能用 between 就不要用 in 了:select id from t where num between 1 and 3