视频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:00:30 责编:小采
文档


首先我们应该了解mysql中的一个重要特性——插件式存储引擎,从名字就可以看出在mysql中,用户可以根据自己的需求任意的选择存储引擎,实际上也是这样,即使在同一个数据库中,不同的表也可以使用不同的存储引擎。Mysql中支持的存储引擎有很多种,这个可以去baidu或者google,本文主要说两种比较常用的存储引擎,myisam和innodb。 myisam的特点是 1)索引和数据分开存储,myisam有三个文件(.frm文件,存储表定义;.MYI存储索引 my index; MYD存储数据 my data) 2)不支持事务以及外键 3)支持全文索引 4)支持数据压缩(myisam支持3种不同存储格式,静态表,动态表,压缩表) 5)Select和Insert效率较高,所以一般以Select和insert为主的应用使用myisam存储引擎。 6)表锁
innodb的特点 1)支持外键和事务 2)如果很多是update和delete操作,那么选择innodb是合适的。 3)数据和索引存储在一起。 4)innodb不支持全文索引 5)InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。 6)行级锁
在对于字符串存储的时候,如果是myisam建议使用固定长度数据列 如果使用innodb,建议使用varchar数据类型
================================华丽分割线===================================================
下面简单提一下mysql中字符集的选择
一般是这样的,如果数据库只是需要支持一般中文,那么使用gbk就够了,不需要使用uft8,原因是gbk一个汉字2个字节,utf8中一个汉字3个字节。 mysql的字符集有两个概念,一个是字符集,一个是校对规则 字符集用来定义存储字符串的方式 校对规则用来定义字符串的比较方式 如果校对规则是ci(比较时,大小写不敏感) cs(比较时大小写敏感),bin(二元,和字符编码有关)
如何修改一个数据库中的字符集呢? 如果没有数据,直接修改就是,但是如果数据库中已经存在数据,那么如何修改字符集呢? 1)导出表结构 2)手动修改导出的表结构(一个sql文件A.sql) 3)导出所有记录(B.sql) 4)修改B.sql中的set names utf8 5)使用新的字符集创建数据库 6)创建表 7)导入数据

下载本文
显示全文
专题