一:常用的存储引擎:
1,myisam:
我建立了一个MyISAM引擎的tb_Demo表,那么就会生成以下三个文件:
1>tb_demo.frm,存储表定义;
2>tb_demo.MYD,存储数据;
3>tb_demo.MYI, 存储索引。
特点: 查询快,写入慢,支持表锁,支持符合全文索引
适合管理邮件,web服务器的日志数据,选择密集结构表的时候用,插入密集结构
表的时候用
2,innodb
1》更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。
2》事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。
3》自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。
4》外键约束。MySQL支持外键的存储引擎只有InnoDB。
5》支持自动增加列AUTO_INCREMENT属性。
一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是不错的选择。
特点:写入快,查询慢,自动灾难恢复,安全性高,合适大数据量,并发高,支持外键,行锁,
支付复合索引,更新密集表,支持自动增加
二:表必须的四个字段字段:
id insert_time update_time status
三,5大索引
1》索引:就像书的目录一样
2》什么时候用:
3》原理:索引会存上相应的指针,当查询某个数据的时候,他就会同过指针跳转到某个数据模块
4》好处:提高了查询速度
5》缺点:
1--占用硬盘,会存上指针指向对应的内容
2--对数据增删改受影响
6》五大索引:
1>主键 primary 自带索引
2>唯一 unique 手机号,用户昵称,
3>普通 用户昵称
4>复合(innodb支持) 靠左原则,多字段 例如:name(姓名),age(年龄) ,address(地址) select * from table where
ALTER TABLE mytable ADD INDEX name_age_address (name(10),age,,address);
相当于建立了(name,age,address;name,address;name)三种查询类型
SELECT * FROM mytable WHREE name="admin" AND age='18' and address="郑州"
SELECT * FROM mytable WHREE name="admin" AND address="郑州"
SELECT * FROM mytable WHREE name="admin"
5,全文(myisam支持,innodb 5.6以后支持)文章
四,表的字段类型
//整形
1,tinyint 1字节 有子符127 ,无字符255
2,smallint 2字节 有子符32767 无字符65535
3,mediumint 3字节 有子符8388607 无字符16777215
4,int 4字节 (11位数,十亿级别,如果有符号,最大存2190000000,没符号4200000000)
5,bigint 8字节 (19位数,亿亿级别)
8,float 4字节
9,double 8字节
//字符串
10,char 1字节 固定长度个字符
11,varchar 2字节 默认255,最大65535个字符
12,tinytext 可变长度 最大255个字符
13,text 可变长度,最大65535个字符
14,mediumtext 可变长度,最大2的24次-1个字符
15,longtext 可变长度,最多2的32次方-1个字符
//时间格式
data 3个字节 日期,格式:2014-09-18
time 3个字节 时间 格式:08:48:15
datetime 8个字节 日期时间 格式 2014-09-18 08:48:15
timestamp 4个字节 自动存储记录修改的时间
year 1个字节 年份
五,一些常用字段用到什么数据类型
1>user_name varchar
2>tel bigint //占8个字节
3>sex char(1)/tinyint/enum //占1个字节
4>card varchar(16) //占32个字节
5>status tinyint //占1个字节
6>age tinyint //占1个字节
7>is_hot tinyint //占1个字节
8>时间戳 int //占4个字节
9>时间格式 datetime //占8个字节
六:几个常用存储引擎的特点
下面我们重点介绍几种常用的存储引擎并对比各个存储引擎之间的区别和推荐使用方式。
存储限制 没有 没有 有 64TB 没有
事务安全 支持 支持
锁机制 表锁 页锁 表锁 行锁 行锁
B树索引 支持 支持 支持 支持
哈希索引 支持 支持
全文索引 支持
集群索引 支持
数据缓存 支持 支持
索引缓存 支持 支持 支持
数据可压缩 支持 支持
空间使用 低 低 N/A 高 非常低
内存使用 低 低 中等 高 低
批量插入的速度 高 高 高 低 非常高
支持外键 支持
2>删除索引 drop index 字段 on table
3>创建索引两种方式:
一命令操作:
1》create 索引类型 index 字段 on 表名(字段(20));
2》alter table 表名 add 索引类型 字段 (`字段`);
二可视化工具:navicat操作
4>普通索引:
1》alter table user add index u_name ( u_name(20) );
2》create index u_name on user(u_name);
5>符合索引
alter table user add index name_age_addr (name(10),u_age,u_addr);
select * from user where name='刘瑞' and age='19' and u_addr='河北省衡水市';
drop index name_age_addr on user;
6>唯一索引
create unique index tel on ce1(tel(10));
alter table user add unique u_time(u_time)
7>查看select 语句有多少索引
explain select * from ce1 where user='王浩' and age='18';
八:表建成之后要用三范式来检查
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024Byte(字节)
1汉字 = 2字节