首页 > 数据库 > 其他综合 >

mysql优化索引

2017-04-19

mysql优化索引,int(4):不代表只能存4个字符,只有 zerofill 时候有效,能够看出区别,且只有在命令行下可以看出区别 time:定长 char(4):定长 4个字符,而不是字节 renf是四个字符 1234是四个字符。

一.定长

int(4):不代表只能存4个字符,只有 zerofill 时候有效,能够看出区别,且只有在命令行下可以看出区别 time:定长 char(4):定长 4个字符,而不是字节 renf是四个字符 1234是四个字符

tinyint 1,2,3,4,5 与char a,b,c,d,e 相比 order by时候要快 char要考虑字符集与校对集

二.添加索引

添加唯一索引

alter table shop_admin add unique user_pass(‘username’,’password’) username,password (唯一索引,一行数据只能出现一次 ) 与别的数据相比 必须有一个不同

原数据 2 3

新行 6 3 可以

而 2 3 不可以

添加联合索引

alter table shop_admin add index user_pa(‘username’,’password’)

三.索引覆盖(值必须要加引号,否则会不走索引)

索引覆盖

select age from user where age>32 建立复合索引

alter table shop_admin add index user_pass_ip(adminuser,adminpass,loginip)

explain select loginip,adminuser from shop_admin where loginip='1'
会发现 using index 索引覆盖,而没有遵循左前缀原则

会发现 using index 索引覆盖,而没有遵循左前缀原则

四.检测语句

检测执行时间

set profilling=on;

select *from shop_admin

show profiles;

五. 例子

索引类型

1,里面有text 字段

select id from test order by id 更慢

select id from test order by id,ver 更快

innodb 聚簇索引,主键索引就是挂着所有数据, id,ver叶子拖着数据少

id,ver 为次级索引 指向主键值

myisam :非聚簇索引 索引指向磁盘位置 xx.myi(索引文件) xx.myd(数据文件)

区分度:

select count(distinct(left(word,1))) /count(*)

alter table shop_admin add key key_4( word(4) )

统计 不重复的左面第一个字符 的数量

存储ip

①多建一列 crc32 建立索引

②或者翻转www.baidu.com=>moc.udiab.www

六.外键

外键用于:user表为主表 org_user表为从表,当user表删除一个用户后,从表也要删除对应的id的信息

alter table org_user add foreign key 'user_id' ('user_id') references user('id') on delete cascade on update NO ACTION

相关文章
最新文章
热点推荐