月度归档:2020年09月

Mysql必知必会

今天在v2ex看到有人问怎么建表,其实建表个人总结起来非常简单。

用面向对象方法建立表

class = table
object = row
property = field

如:(我习惯用单数,你可以用复数)

book:
id
title,
isbn

category:
id
name

book_category:
id
book_id
author_id

处理表关联关系

  • A1 对多 B:B 表加 a_id,比如 order_item 表加 order_id
  • A1 对 1B:附表加主表 id,比如 profile 表加 user_id
  • A 多对多 B:C 表关联 A,B,如 post_tag 表加 post_id 和 tag_id

如何建立索引(全文索引)

  • 通常常用的where条件增加索引,如select id,title from post where forum_id=3,这时候需要给forum_id加索引,ID是主键是不要加的,title也不要加
  • 数据库模糊查询(如搜索“Mysql 数据库”)需要建立全文索引(参考我的另外一篇文章:Mysql中文全文索引(含实例5分钟上手)
  • 排序可以加组合索引,如select id,title from post where forum_id=3 order by create_time desc,这时候可以加forum_id+create_time的组合索引,Mysql高版本组合索引可以设置排序
  • 组合索引单独查后部分不起作用,如上面的forum_id+create_time的组合索引,如果你只根据create_time查那么不起作用
  • 唯一字段可以加唯一索引

Mysql性能工具

  • explain可以分析sql性能,每个字段的含义都需要清楚
  • slow query log:Mysql的配置中开启慢速查询日志,慢速查询日志需要用慢查询分析工具来分析,不是用肉眼来看的
  • show full processlist可以查看当前数据库运行的查询
  • infomation_schema有一大堆有用东西

其他

  • null还是0:建议采用null表示没有,这样不会影响数据库的约束

有用的资源

大决战–企业做了有风险,不做风险更大

大决战的目标就是回答这样一个问题:我们自己在哪一块能够做到独一无二,能够做到应该说没有替代者,在这块是最卓越的最优秀的。

而要拿到第一,我们就要组织资源实现一次大决战,要夺取一个山头,夺取一个高地,企业才能确保能够生存下去。

所以两个定位之间还不能说这个是主要,那个是次要。主要还是次要其实是关乎到企业的一套战略,取决于哪一位企业家能把这个定位做得更大。

如果现在这个市场没有一个绝对的主导者、同时千军万马又在竞争的时候,这时候谁能把这个行业和老大位置先给占了,成为品类的代表,这就是一个主定位,那这种机会其实在中国尤其有价值。

所以您提到的这个视角就可以解释为什么我们那么多老字号随风而去,他们就是没有理解这个时代是需要一场大决战,在社会上把这个位置奠定起来,而不仅仅是我有好的传承我有好的工艺做法就够了。

所以为什么需要大决战,大决战的终极目标就是我要捷足先登。

邓德隆:我觉得就是每一位企业家恐怕首先要思考一个问题,如果我们一旦出手没有把握把这个山头拿下,那我还不如不出手。

王波明:所以您说这个大决战,就意味着要集中兵力打歼灭战,不能像过去那个传统的打法,一年又一年去推。

所以概括起来就是正确的位置,然后是恰当的兵力和恰当的节奏,主要取决于这三个要素。

此外,恐怕企业自己必须明白一个道理,就是说风险它是相对的,而不决战的风险更大。如果不能通过大决战去主导一个山头的话,企业就会什么都没有,风险是最大的。

首先就是大决战它肯定本身就是蕴含着风险的,不过我们可以降低风险。这里面还是有很多讲究的,我们有很多原则,比如要在测试成功的地方推动大决战,就像咱们国家改革开放,先深圳试点成功了,我再在全国推开嘛,承包责任制在小岗村试验成功了,我再在全国推开,等等。

现在企业靠守是守不住的,所以企业家如果想清楚这个问题,他就会明白必须要展开一场大决战。

没有赢家的消耗战最危险

企业家要敢于去做老大,当然这不意味着大决战就完全结束了,而是说第一阶段结束了。

所以做企业它是一个永不停止的大决战,没有终点的,这一点和战争不同,它有个终点。

参考