视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL使用点滴_MySQL
2020-11-09 17:29:43 责编:小采
文档

同样的字符在不同字符集下占用空间可能不同

  默认的 latin1 字符集下,汉字占两个字节,英文占1个字节。而在 gb2312 和 utf-8 等字符集下,英文也占两个字节。从字符编码的角度讲似乎也无可非议,但是 MySQL 中这样处理以前真没有注意到过,char(10) 中的 10 正是按照字符集中的个数算的。处理数据量大的时候尤其需要注意,当然在 char 和 varchar 之间也可以权衡选择。

  tinyint 和 smallint mediaint int

  无论你指定 tinyint(1) 还是 tinyint(2),一个 tinyint 字段中保存的值范围都会是无符号时 0-255(有符号时 -127-128) ,其他 int 类型有类似情况。

  phpMyAdmin 显示的”总计”不准确

  这个应该不是 MySQL 的原因。在我 select * from innodb_table 的时候,显示的“总计”数和 select count(*) from innodb_table 所得数可能不一致。这个以前也注意到过,之前还造成过几次误解。貌似并不是只有 InnoDB 表会出这样的情况, MyISAM 表在 phpMyAdmin 也有这样的问题。

  内存表

  内存表有大小,内存文件超过 my.ini 中设置以后,会自动转换部分到硬盘。内存表所占内存以固定的大小分配空间,即使一个表中只有一条记录,也可能占几M空间。内存表是有大小的,在 my.ini 中可以设置,当内存大小达到时,可能会报错:#1114: The table ‘XXX’ is full 。上面是我实际遭遇到的,但是 my.ini 中有下面这段:

  # Maximum size for internal (in-memory) temporary tables. If a table

  # grows larger than this value, it is automatically converted to disk

  # based table This limitation is for a single table. There can be many

  # of them.

  tmp_table_size=13M

  MERG 表

  只有 MyISAM 表可以 merge ,MERG 的所有子表表结构要求一致。

  多表更新

  比较新的版本才支持同时 update 多个表。比如这样 update user_state, user_state2 set user_state.state_0507_db2 = user_state2.state_0507_db2 where user_state.qq = user_state2.qq

下载本文
显示全文
专题