选择合适的数据类型;char 是定长,varchar是变长,char的处理速度比varchar快,但是空间比varchar用的多。在不同的存储引擎中:myisam:用char代替varchar。memory:不论是varchar还是char 多会按照char处理。innodb:建议使用varchar替代char,因为性能因素是数据行的存储总量,varchar最小化处理数据行存储总量和磁盘i/o
text和blog:多存放大数据,但是blog可以存放二进制内存。两者在大量删除时,会出现性能问题,因为会留下大量空洞,建议使用optimize table 功能碎片整理
浮点数和定点数(decimal):浮点数不精确,会出来四舍五入的情况,定点数精确,所以对于价格单位一般
用定点数
Mysql字符集的设定(latin1转gbk):
1、在my.cnf中设置:default-character-set=gbk
2、在启动项设定:mysqld –default-character-set=gbk
3、编译的时候设置:./configure --with-charset=gbk
修改字符集步骤:
1、导出表结构:mysqldump –uroot –p --default-character-set=gbk -d databasename>createtab.sql
--default-character-set=gbk:表示设置以什么字符集链接,-d:表示之导出表结构
2、手工修改createtab.sql表中的定义的字符集为新的字符集
3、确保数据不再更新,导出所有数据
Mysqldump –uroot –p –quick –no-create-info –extended-insert –default-character-set=lation1 databasename>data.sql
4、打开data.sql,修改字符集
5、使用新字符集创建数据库:create database databasename default charset gbk
6、创建表执行createtab.sql: mysql –uroot -p databasename <createtab.sql
7、导入数据执行data.sql: mysql –uroot –p databasename<data.sql
