mysql索引

MySQL查看表索引

孤人 提交于 2020-03-02 07:36:48
mysql> show index from tblname; mysql> show keys from tblname; · Table 表的名称。 · Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。 · Column_name 列名称。 · Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。 · Cardinality 索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机 会就越大。 · Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 · Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL。 · Null 如果列含有NULL,则含有YES。如果没有,则该列含有NO。 · Index_type 用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。 · Comment 来源: https://www.cnblogs.com/kenwong

如何查看MySQL索引

一世执手 提交于 2020-03-02 07:36:09
查看MySQL索引,查看到的都是哪些信息呢?下面为您介绍的是查看 MySQL 索引方面的知识,希望对您学习MySQL索引方面能有所帮助。 mysql> show index from tblname; mysql> show keys from tblname; · Table 表的名称。 · Non_unique 如果MySQL索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。 · Column_name 列名称。 · Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。 · Cardinality MySQL索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。 · Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 · Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL。 · Null 如果列含有NULL,则含有YES。如果没有,则该列含有NO。 · Index_type

根据多年经验整理的《互联网MySQL开发规范》

烂漫一生 提交于 2020-03-01 19:26:39
写在前面:无规矩不成方圆。对于刚加入互联网的朋友们,肯定会接触到 MySQL , MySQL 作为互联网最流行的关系型数据库产品,它有它擅长的地方,也有它不足的短板,针对它的特性,结合互联网大多应用的特点,笔者根据自己多年互联网公司的 MySQL DBA 经验,现总结出互联网 MySQL 的一些开发规范,仅供参考。 一、基础规范 (1) 使用 INNODB 存储引擎 (2) 表字符集使用 UTF8 (3) 所有表都需要添加注释 (4) 单表数据量建议控制在 5000W 以内 (5) 不在数据库中存储图 ⽚ 、文件等大数据 (6) 禁止在线上做数据库压力测试 (7) 禁 ⽌ 从测试、开发环境直连数据库 二、命名规范 (1) 库名表名字段名必须有固定的命名长度, 12 个字符以内 (2) 库名、表名、字段名禁 ⽌ 止超过 32 个字符。须见名之意 (3) 库名、表名、字段名禁 ⽌ 止使 ⽤ 用 MySQL 保留字 (4) 临时库、表名必须以 tmp 为前缀,并以 ⽇ 日期为后缀 (5) 备份库、表必须以 bak 为前缀,并以日期为后缀 三、库、表、字段开发设计规范 (1) 禁 ⽌ 使用分区表 (2) 拆分大字段和访问频率低的字段,分离冷热数据 (3) 用 HASH 进 ⾏ 散表,表名后缀使 ⽤⼗ 进制数,下标从 0 开始 (4) 按日期时间分表需符合 YYYY[MM][DD][HH]

Java最新突击面试笔记总结—ElasticSearch面试内容

一世执手 提交于 2020-03-01 18:07:29
搜索引擎面试题 题目和解答来自于中华石杉和自己整理总结而得,希望能够有所帮助。 搜索引擎主要考察ElasticSearch 以及对应底层的Lucene技术。 主要面试题集中于: es分布式架构原理 es的插入与查询 es在数据量很大的情况下如何提高性能 es在生产集群的部署架构是什么,每个索引有多大的数据量,每个索引有多少分片 1. es分布式架构原理 首先需要明白es是如何存储数据的,es把对应的数据转换为index。基于倒排索引的方式,每个index上存储了多个type类型,每个type对应一个document。而一个index会被分成多个shard(默认是5个)。 在分布式部署时,每个shard会被复制,即一个shard有primary和replica 每个es进程存储的是不同shard的primary和replica。es集群多个节点,会自动选举一个节点为master节点,这个master节点其实就是干一些管理的工作的,比如维护索引元数据拉,负责切换primary shard和replica shard身份拉取之类的。 2. es的数据写入与读取 2.1 es数据的写入 2.1.1 es数据的写入过程 注意,客户端是可以在任意节点进行写入数据的,与Kakfa不同。 1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点) 2

MySQL中MyISAM与InnoDB区别及选择

落爺英雄遲暮 提交于 2020-03-01 17:37:03
InnoDB: 支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和索引存放在表空间里面 跨平台可直接拷贝使用 InnoDB中必须包含AUTO_INCREMENT类型字段的索引 表格很难被压缩 MyISAM: 不支持事务,回滚将造成不完全回滚,不具有原子性 不支持外键 不支持外键 支持全文搜索 保存表的具体行数,不带where时,直接返回保存的行数 DELETE 表时,先drop表,然后重建表 MyISAM 表被存放在三个文件 。frm 文件存放表格定义。 数据文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引伸 跨平台很难直接拷贝 MyISAM中可以使AUTO_INCREMENT类型字段建立联合索引 表格可以被压缩 选择: 因为MyISAM相对简单所以在效率上要优于InnoDB.如果系统读多,写少。对原子性要求低。那么MyISAM最好的选择。且MyISAM恢复速度快。可直接用备份覆盖恢复。 如果系统读少,写多的时候,尤其是并发写入高的时候。InnoDB就是首选了。 两种类型都有自己优缺点,选择那个完全要看自己的实际类弄。 来源: https://www.cnblogs.com/chenlinlab/p/9545282.html

mysql 规范

99封情书 提交于 2020-03-01 17:31:12
1 ,命名长度 命名长度不超过15个字符为宜,禁止超过20 2, 库名与应用名尽量一致, 数据库名称应该反映数据对应的 业务范围 + 业务功能 3, 表名应该用 业务作为统一的前缀 4, 唯一性索引用 uk_ 开头, 后面跟字段名,如: uk_ 5, 一般性索引用 idx_开头 6, 字段设计,尽量非空,加上默认值 来源: oschina 链接: https://my.oschina.net/u/2419285/blog/1611639

zbb20180927 MySQL MyISAM InnoDB区别

流过昼夜 提交于 2020-03-01 16:39:29
MySQL MyISAM InnoDB区别 InnoDB: 支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和索引存放在表空间里面 跨平台可直接拷贝使用 InnoDB中必须包含AUTO_INCREMENT类型字段的索引 表格很难被压缩 MyISAM: 不支持事务,回滚将造成不完全回滚,不具有原子性 不支持外键 不支持外键 支持全文搜索 保存表的具体行数,不带where时,直接返回保存的行数 DELETE 表时,先drop表,然后重建表 MyISAM 表被存放在三个文件 。frm 文件存放表格定义。 数据文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引伸 跨平台很难直接拷贝 MyISAM中可以使AUTO_INCREMENT类型字段建立联合索引 表格可以被压缩 选择: 因为MyISAM相对简单所以在效率上要优于InnoDB.如果系统读多,写少。对原子性要求低。那么MyISAM最好的选择。且MyISAM恢复速度快。可直接用备份覆盖恢复。 如果系统读少,写多的时候,尤其是并发写入高的时候。InnoDB就是首选了。 两种类型都有自己优缺点,选择那个完全要看自己的实际类弄。 来源: https://www.cnblogs.com

MySQL高级 InnoDB 和 MyISAM 的区别

安稳与你 提交于 2020-03-01 16:38:52
InnoDB: 支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和索引存放在表空间里面 跨平台可直接拷贝使用 InnoDB中必须包含AUTO_INCREMENT类型字段的索引 表格很难被压缩 MyISAM: 不支持事务,回滚将造成不完全回滚,不具有原子性 不支持外键 不支持外键 支持全文搜索 保存表的具体行数,不带where时,直接返回保存的行数 DELETE 表时,先drop表,然后重建表 MyISAM 表被存放在三个文件 。frm 文件存放表格定义。 数据文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引伸 跨平台很难直接拷贝 MyISAM中可以使AUTO_INCREMENT类型字段建立联合索引 表格可以被压缩 选择: 因为MyISAM相对简单所以在效率上要优于InnoDB.如果系统读多,写少。对原子性要求低。那么MyISAM最好的选择。且MyISAM恢复速度快。可直接用备份覆盖恢复。 如果系统读少,写多的时候,尤其是并发写入高的时候。InnoDB就是首选了。 两种类型都有自己优缺点,选择那个完全要看自己的实际类弄。 来源: https://www.cnblogs.com/zhanghanwen16/p/8520800

Java最新突击面试笔记总结—ElasticSearch面试内容

大城市里の小女人 提交于 2020-03-01 15:07:09
搜索引擎面试题 题目和解答来自于中华石杉和自己整理总结而得,希望能够有所帮助。 搜索引擎主要考察ElasticSearch 以及对应底层的Lucene技术。 主要面试题集中于: es分布式架构原理 es的插入与查询 es在数据量很大的情况下如何提高性能 es在生产集群的部署架构是什么,每个索引有多大的数据量,每个索引有多少分片 1. es分布式架构原理 首先需要明白es是如何存储数据的,es把对应的数据转换为index。基于倒排索引的方式,每个index上存储了多个type类型,每个type对应一个document。而一个index会被分成多个shard(默认是5个)。 在分布式部署时,每个shard会被复制,即一个shard有primary和replica 每个es进程存储的是不同shard的primary和replica。es集群多个节点,会自动选举一个节点为master节点,这个master节点其实就是干一些管理的工作的,比如维护索引元数据拉,负责切换primary shard和replica shard身份拉,之类的。 2. es的数据写入与读取 2.1 es数据的写入 2.1.1 es数据的写入过程 注意,客户端是可以在任意节点进行写入数据的,与Kakfa不同。 1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点) 2

Mysql之索引分享

烈酒焚心 提交于 2020-03-01 04:02:48
索引介绍 索引的种类 B-Tree 索引 最常见的索引类型,大部分引擎都支持B树索引。 HASH 索引 只有Memory引擎支持,使用场景简单。 R-Tree 索引(空间索引) 空间索引是MyISAM的一种特殊索引类型,主要用于地理空间数据类型。 Full-text (全文索引) 全文索引也是MyISAM的一种特殊索引类型,主要用于全文索引,InnoDB从MYSQL5.6版本提供对 高性能索引策略 覆盖索引 联合索引 索引下推 来源: CSDN 作者: Benett-Chen 链接: https://blog.csdn.net/sky_100/article/details/104578135