mysql 基础知识集锦

  1. 一个表里面所有的varchar 字段加起来必须不能超过65532字节,推荐不超过8098个,因为一旦超过8098,占用的磁盘大小超过了一页,innodb会使用未压缩的blob页来保存,数据页会被用来保存偏移量,varchar越大,使用的blob越多,所以从效率和节省空间角度来说,不推荐超过8098.
  2. char也被当做变成处理,根据字符集决定,比如同一个表,存入’a’ 和’他’占用的字节是不同的
  3. innodb的range 分区 查询,只能针对YEAR,TO_DAYS,TO_SECONDS,UNIX_TIMESTAMP等函数进行搜索优化,比如YEAR(date) + MONTH(date)的时候,优化器是不会搜索优化的
  4. Mysql 5.5版本之前 索引的添加或者删除操作过程是这样的
    • 先创建一个临时表,表结构为alter table之后的新定义的结构
    • 把原来的数据导入临时表
    • 删除原表
    • 把临时表重命名为原来的表
  5. Got error 28 from storage engine,这就是一个很无辜的错误了,或者是属于dba范畴的,磁盘空间满了,没有空间写数据了

Leave a comment

Your email address will not be published.

*