mysql笔记

前缀索引:使用字段的部分前缀做为索引,可以有效减少索引的长度

1)、创建索引

alter table testdb.user ADD KEY(username(5)) //使用username前5个字符作为索引

2)、检查全列选择性

select count(distinct left(username, 5))/count(*) from user;

模拟哈希索引:很大的建也只有很小的索引

1)、新增索引列

alter table testdb.user add column username_crc int unsigned NOT NULL DEFAULT 0;

alter table user add index index_username_crc(username_crc);

2)、创建触发器自动更新索引列:

DELIMITER |

CREATE TRIGGER user_crc_ins BEFORE INSERT ON user FOR EACH ROW BEGIN SET NEW.username_crc=crc32(NEW.username);

END;

|

CREATE TRIGGER user_crc_upd BEFORE UPDATE ON user FOR EACH ROW BEGIN SET NEW.username_crc=crc32(NEW.username);

END;

|

DELIMITER ;

3)、使用索引:

select id from user where username_crc=crc32('tom') and username='tom';

聚集索引:InnoDB主键,数据行实际保存在B-Tree索引的叶子页,第二索引访问需要两次索引查找

索引覆盖:查询的字段在索引行中时,explain extra字段有Using index

查看索引: show index from user;

更新索引统计:analyze table user;

消除碎片:optimize table user; myisam会阻塞

查询缓存:query_cache_type (ON,OFF,DEMAND) select SQL_CACHE * from ...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 686评论 0 1
  • MySQL数据库对象与应用 2.1-MySQL数据类型 库建立好之后基本不动,和我们接触最频繁的是表. 建表就是声...
    极客圈阅读 2,181评论 0 8
  • 小结:MySQL [TOC] 安装与登陆 Linux系统:可以从官网下载deb安装包安装,或者使用apt-get命...
    时代滚滚向阅读 176评论 0 0
  • 一. Java基础部分.................................................
    wy_sure阅读 3,854评论 0 11
  • 什么是SQL数据库: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是...
    西贝巴巴阅读 1,890评论 0 10