0%

PHP编译安装之后,通常我们还需要根据我们的业务需求去安装各种扩展。通常我们可以通过php提供的phpize这个工具来为PHP动态地添加我们需要的模块。

阅读全文 »

在PHP5中,通过方法传递变量的类型有不确定性。我们很难判断,一些操作是否可以运行。
使用instanceof运算符,可以判断当前实例是否可以有这样的一个形态。当前实例使用 instanceof与当前类,父类(向上无限追溯),已经实现的接口比较时,返回真。

代码格式:实例名 instanceof 类名

阅读全文 »

概念

在使用之前先明确两个概念。

  • 工作区(working directory)

    我们创建的文件夹

  • 版本库(Repository)

    一个工作区中隐藏的目录(.git)这个目录不算工作区
    版本库

    • stage,暂存区
    • master,分支

    日常我们进行git add操作,是将文件修改添加到了暂存区,而进行git commit操作,则是将暂存区中的修改提交至当前分支。

阅读全文 »

Homebrew

homebrew,一个在Mac OS上的软件包管理工具。是一款有Ruby开发的智能包管理系统.

官网地址

  • 安装:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  • 功能:

    软件包管理。homebrew会将套件安装到独立目录,并将文件软连接链接到/usr/local

  • 命令格式

    $ brew -h
    Example usage:
    brew search [TEXT|/REGEX/]
    brew (info|home|options) [FORMULA...]
    brew install FORMULA...
    brew update
    brew upgrade [FORMULA...]
    brew uninstall FORMULA...
    brew list [FORMULA...]
    Troubleshooting:
    brew config
    brew doctor
    brew install -vd FORMULA
    Brewing:
    brew create [URL [--no-fetch]]
    brew edit [FORMULA...]
    https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Formula-Cookbook.md
    Further help:
    man brew
    brew help [COMMAND]
    brew home
    
  • 示例

    $ brew install wget
    

brew-cask

brew-cask,是一套建立在homebrew之上的Mac软件安装命令行工具。其与brew的区别是,后者侧重与软件套件和软件环境的配置安装。

官网

  • 安装:

    $ brew install brew-cask
    
  • 命令格式

    $ brew cask -h
    brew-cask provides a friendly homebrew-style CLI workflow for the
    administration of macOS applications distributed as binaries.
    Commands:
      audit                  verifies installability of Casks
      cat                    dump raw source of the given Cask to the standard output
      cleanup                cleans up cached downloads and tracker symlinks
      create                 creates the given Cask and opens it in an editor
      doctor                 checks for configuration issues
      edit                   edits the given Cask
      fetch                  downloads remote application files to local cache
      home                   opens the homepage of the given Cask
      info                   displays information about the given Cask
      install                installs the given Cask
      list                   with no args, lists installed Casks; given installed Casks, lists staged files
      search                 searches all known Casks
      style                  checks Cask style using RuboCop
      uninstall              uninstalls the given Cask
      update                 a synonym for 'brew update'
      zap                    zaps all files associated with the given Cask
    See also "man brew-cask"
    
  • 示例

    $ brew cask install iterm2
    

良好的数据路逻辑设计和物理设计是高性能的基石,所以要打造一个高性能的数据库服务,在Schema设计之初就应该需要权衡各种因素。

选择最优化的数据类型

数据库支持的数据类型非常多,选择一个正确的数据类型对于获得高性能至关重要。

选择合适数据类型的几个原则:

  1. 更小的通常更好
    一般情况下,应该尽量使用可以正确数据类型的最小数据类型。但也要确保没有低估需要存储的范围。

  2. 简单就好
    简单的数据类型的操作通常需要更少的CPU周期。例如,

  • 整型比字符串操作代价更低
  • 使用MySQL内建的数据类型(比如,date、time、datetime),比用字符串更快
  • 使用整型存储一个IP地址,比用一个字符串更好
  1. 尽量避免使用NULL
    因为如果在查询中包含有NULL的列,对MySQL来说更难优化。所以通常情况下,最好指定列为 NOT NULL。

TIPS:
datetime和timstamp列都可以存储相同类型的数据(时间和日期,都可以精确到秒),然而timestamp实际只使用datetime一般的存储空间。但另一方面,timestamp允许的时间范围要小的多。

阅读全文 »

基于存储引擎在MySQL架构中的地位,在学习和使用MySQL时我们需要对MySQL的各种存储引擎有一个大概的了解。
并且知道在实际项目中如何选择适合的存储引擎,以及如何实现不同存储引擎的相互切换。

阅读全文 »