MySQL数据库使用点滴_MySQL数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

MySQL数据库 使用点滴

作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0

本篇关键词:使用数据库内存这样
黑客防线网安网讯:  同样的字符在不同字符集下占用空间可能不同  默认的 latin1 字符集下,汉字占两个字节,英文占1个字节。而在 gb2312 和 utf-8 等字符集下,英文也占两个字节。从字符编码的角度讲似乎...

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

  默认的 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

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-9363-1.html
网站维护教程更新时间:2012-03-20 17:18:39  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer