博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql存储引擎的一点学习心得总结
阅读量:6718 次
发布时间:2019-06-25

本文共 1145 字,大约阅读时间需要 3 分钟。

首先我们应该了解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)导入数据

转载地址:http://elkmo.baihongyu.com/

你可能感兴趣的文章
Linux下的ping命令
查看>>
JAVA使用JDOM创建简单xml
查看>>
mac 上安装 Android SDK
查看>>
angular 1.x select 默认选中
查看>>
input accept属性限制文件上传格式
查看>>
JQuery扩展:TextArea在光标处插入文本
查看>>
支付宝接口使用文档说明 支付宝异步通知
查看>>
前端基础快速学习-Dom
查看>>
Java面向对象深入篇 (二)
查看>>
Hibernate get 和 load方法区别
查看>>
企业实施云ERP软件需注意哪些关键问题
查看>>
poj 2752 Seek the Name, Seek the Fame
查看>>
spring的注解注入
查看>>
在GIF图片上打水印,图片合成
查看>>
常见排序2---归并排序
查看>>
使用ln创建软链接碰到的小问题
查看>>
Android Browser学习十二 UrlInputView(2) 网络联想数据的获取详细
查看>>
ASP.NET MVC 4 for Visual Studio 2010 下载地址
查看>>
PHP配置MS SQLServer数据库连接
查看>>
HTML链接
查看>>