Mysql字段大小与zerofill

union

把2条或多条SQL的查询结果合并成一个结果集
注意:完全相等的行将会被合并,合并是比较耗时的操作,尽量避免合并,使用union all。

这里写图片描述

声明后如果不加unsigned,默认是带符号的

zerofill

作用:用于学号编码等固定宽度的数字
学号->001,012
M:总宽度,配合zerofill使用或在浮点数里使用
zerofill属性的列默认为unsigned

浮点列与定点列

float(M,D)
M:精度,表示总位数
D:标度,代表小数点后面的位数 float(5,2)表示小数点前最多3位,小数点后2位。
float/double:有精度损失
decimal:定点型,更精确。

字符型

char(10) 0-255
最多存10个字符,存一个字符会在右侧用空格补齐,也是占10个字符的长度,取出的时候会删除右侧的空格
varchar(10) 0-60000
最多存10个字符,会在行开始处用1-2个字节存额外的说明信息
enum与set的区别:enum2选1,set可多选。

主键

primary key此列不重复,能够区分每一行
auto_increment一张表只能有一个,且必须是索引(key/index)

视图

create view v3 as select name,age,sex from user;
view:sql的查询结果。如果视图的每一行是与物理表一一对应的,则可以增删改。如果view的行是由物理表多行经过计算得到的结果,则view不能更新。
存储:如果是比较简单的SQL语句,会把创建视图的语句存储起来,然后查询的时候合并语句去磁盘查找,如果是比较复杂的SQL,会先执行,结果放内存中,然后去临时表中查询。

索引

索引:(在MySQL中也叫键‘key’),是储存引擎用于快速找到记录的一种数据结构;
索引提高了查询速度,但降低了增删改的速度,一般在查询频繁的列上加索引,重复度低的列上加效果更好。
key普通索引
unique key 唯一索引
primary key 主键索引
full text 全文索引(中文环境下,全文索引无效,要用分词+索引,一般用第3方解决方案sphinx)
多列索引,就是把两列或多列的值看成一个整体,然后建索引
冗余索引,一个列可能被多个索引覆盖
innodb:主索引文件上,直接存放该行数据,称为聚簇索引,次索引指向对主键的引用。
myisam:主索引和次索引都指向物理行。
索引覆盖:当查询的内容正好是索引的一部分,则不需要回行查找(磁盘查找)。

awk

while(还有下一行){

	 1.读取下一行,并把下一行赋给$0,各列赋给$1,$2,$n
	 2.用指定的命令来处理该行
}
awk '{printf("%s\n",$0)}' score.txt 
mysqladmin -uroot ext|awk '/Queries/{printf("%d ",$4)}/Threads_connected/{printf("%d ",$4)}/Threads_running/{printf("%d ",$4)}'

explain

id
查询编号,有子查询会递增。

select_type
simple:简单查询。
这里写图片描述

table
查询的表名或临时名。

possible_keys
可能用到的索引

key
实际用到的索引

key_len
索引最大长度

type
ALL:表示全表扫描
index:扫描所有索引节点
range:根据索引做范围的扫描。
ref:通过索引直接引用到某些数据行
eq_ref:直接定位到某一行
const,system,null:查询优化到常量级别,甚至不需要查找时间。

ref
连接查询时,前表与后表的引用关系。

rows
估计扫描了多少行

extra
using index
using where
using temporary
using filesort
range checked for each necond

列选择的原则:

在都可选的情况下:int>date,time>enum,char,varchar>blog
整型,time运算快,节省空间
cahr,varchar会考虑字符集转换与排序时的校对集
Blog无法使用内存临时表

索引碎片与维护

在长期的数据更改过程中,索引文件和数据文件都将产生空洞,形成碎片。
alter table xxx engine innodb;
optimize table xxx;
修复表的数据及索引碎片,就会把所有的数据文件重新整理一遍,使之对齐,这个过程如果表的行数比较大,也是非常耗资源的操作,所以不能频繁的修复,如果表的update操作很频繁,可以按周/月来修复。

批量更新多条数据多个字段

这里写图片描述

这里写图片描述

mysqldump

mysqldump -uuser -ppwd -hhost --databases pa --tables pa_stat --where=‘left(minute_idx,6)=201809’ >/tmp/pa_stat_9.sql

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值