手记

MySQL基础知识小结(一)

  • char与varchar
    1)char为固定空间存储, 实际数据不够会补够,超出长度则截断; varchar为不固定长度存储,使用额外的1-2个字节来存储长度信息。
    2)char可能导致空间浪费, 但也可能有效减少空间碎片,上限255; varchar的情况相反,上限65535个字节(指定的长度表示的为字符,要考虑编码)

  • int(x)
    x代表了int整型的最大显示长度。 int占4个字节, 无符号最大值4294729693, 即长度为10. 因此int(11)与int(12)本质上应该没有差别。

  • mysql的日志种类
    错误日志: -log-err (记录信息包括: 服务启动或关闭, 运行过程的错误或警告, 事件调度器)
    查询日志: -log
    慢查询日志: -log-slow-queries
    更新日志: log-update (一般都不会使用)
    二进制日志: -log-bin (mysqlbinlog查看二进制文件)

  • show profile
    用于分析sql执行的性能, 相对于explain, profile还可以查看执行的CPU/Memory使用情况。

  • 关于buffer size
    对于myisam, 要设置合适的key_buffer_size大小; 因为myisam需要用到系统的缓存来缓存数据,因此需要为索引留出部分空间.
    对于innodb, 要设置合适的innodb_buffer_pool_size大小; 因为innodb会把数据和索引都一起缓存起来, 该值应该相对大一些.

  • delete与optimize
    如果一个表经常有insert与delete操作,应该要定期进行optimize操作,可以有效的回收空间和整理碎片.

  • 关于锁
    myisam只支持表锁; innodb支持行级锁,它是通过在索引上加锁来实现的,因此只有在用到索引来检索数据时才用到行锁,否则仍使用表锁.

  • 关于索引
    myisam支持的索引类型包括: 普通索引(index), primary key(主键), 唯一性主键(unique key), 全文索引(full text).

1人推荐
随时随地看视频
慕课网APP