1.InnoDB与 Myisam

InnoDB 存储引擎

  • 支持事务。处理大量短期事务能力强

  • 自动崩溃恢复。恢复速度快,不易出错

  • 采用 MVCC 来支持高并发,且实现了四个标准的隔离级别,默认为重复读,并且通过间隙锁策略防止幻读

  • 表基于聚簇索引建立。聚簇索引对主键查询有很高性能,因为聚簇索引页的叶子页节点中包含了行数据。二级索引中都必然包含指向聚簇索引的主键列。因此主键列越小,其余二级索引也就相应越小
  • 从磁盘读取数据时采用可预测性读,能够在内存中创建 hash 索引以加速读操作的自适应哈希索引,以及能够加速插入操作的插入缓冲区(insert buffer)
  • 支持真正的热备份。即不停机备份,MySQL 其他存储引擎做不到

Myisam 存储引擎

  • 不支持事务和行级锁。对所有读到的表加共享锁,写入时则加对表加排它锁
  • 崩溃后无法安全恢复,容易丢失数据
  • 没有聚簇索引的概念,但由于主键或二级索引都是存指向行数据的指针,固查询速度快
  • 延迟更新索引。如果在创建 myisam 表的时候,如果指定了 DELAY_KEY_WRITE,在每次修改完成时,修改的索引数据先写入到键缓冲区(in-memory key buffer),只有在清理键或者关闭表的时候才会将对应的索引块写入到磁盘。这样极大地提升写入性能
  • 支持使用myisampack对表进行压缩,注意,压缩表不能直接修改数据

2.get 与 post 区别?

1.参数传输方式不同。get 通过地址栏明文传输;post 通过 request body 传输
2.参数传输大小不同。get 一般浏览器不允许URL大于2Kb;post 数据默认为8MB
3.参数传输类型不同。get 只允许 ASCII 码类型数据传输;post 没数据类型限制
4.TCP请求次数不同。对于get,浏览器将http header 与 data 一同发送,产生一次TCP 请求包;对于 post, 
浏览器先发送 header,待服务器响应100 continue 之后再发data,产生2次请求包;火狐浏览器 post 为一次

3.exec(commend,$output) 与 eval (commend)区别?

1.exec 是执行外部程序;eval 是把字符串作为PHP 代码执行。它能执行任意 PHP 代码,不安全
2.exec 的返回值为 执行commend 命令最末行输出,可以通过$output数组保存 commend 命令整个输出

4.进制转换

十进制:decimal【dec】    八进制:octonary【oct】    二进制:binary    十六进制:hexadecimal

二进制转十进制:bindec()
十进制转八进制:decoct()
十进制转十六进制:dechex()

results matching ""

    No results matching ""