mysql如何查看表索引信息 mysql查询表索引字段详细方法

查看MySQL中表索引信息:
1 .使用SHOWINDEXFROM直接显示索引属性、列名、类型、序列等。
2 、使用SHOWCREATETABLE查看完整表,创建SQL,了解索引和表结构的关系。
3 、查看information_schema.STATISTICS表,灵活过滤排序,适合复杂报表。

索引字段分析:

Non_unique检查唯一性,0为唯一,1 为正常。

Key_name是索引的名称,主键是PRIMARY。

Seq_in_index复合索引列的顺序影响索引的效率。

基数列中没有重复值,值越高选择性越强。
Index_type、BTREE和HASH分别适用于不同的场景。

性能问题诊断:

低选择性索引,低基数,优化器可以扫描全表。

冗余索引、复合索引和分离索引并存,增加了写操作的开销。

过多的索引会影响写入、更新和删除操作。

与EXPLAIN结合:

键实际使用的索引名称。

输入理想值:const、eq_ref、ref、range,注意 ALL。

rows 估计分析的行数。
高值无效。

额外检查索引的覆盖范围或排序是否已优化。

闭环优化:

显示索引。

分析问题。

检查执行计划。

优化设计。

迭代测试。

示例:如果字段类型Cardinality=2 ,EXPLAIN显示type=ALL,则索引无效,可以删除或创建复合索引。

OushuDB 产品介绍

这个东西听起来很高级,我怎么理解呢?但告诉你我遇到的陷阱可能没有什么帮助,但听起来很有趣。

前年我在上海,带领一个小团队搭建了一个数据仓库。
本来想用大公司的老品牌,结果系统卡住了,老板天天骂我。
然后我就咬牙给自己买了一个新设备,叫什么名字?哦,是的,OushuDB。
说实话,申请真的很顺利。

你看,在旧系统中,如果检查多个表关联,CPU会烧坏,内存会爆炸。
改用OushuDB后感觉速度快多了。
我看了一下资料,说SIMD指令优化是一次性处理大量数据,运行速度非常快的东西。
我们测量了它。
过去创建沙漏报告需要十分钟,但使用他们的系统只需两到三分钟。
老板大吃一惊。

这种灵活性确实令人惊叹。
去年双十一期间,我们的生意突然暴涨,幕后的警报也随之响起。
我们看看,哦,我们扩大一下容量吧。
只要移动鼠标,机器就会自动添加到那里,用不了多久就稳定了。
这比我们之前逐个节点添加的繁琐做法要好得多。
您的无状态部分似乎有点令人担忧。
只需添加即可,您不必担心复杂的同步问题。

不过,我才用了这个东西一年多,有些深奥的东西不能乱说。
例如,就成本而言,它被宣传为一种省钱的方法,但确切的金额取决于你如何使用它。
虽然我们这里比以前节省了一些电,但是购买这个系统的费用还是不小的。

顺便问一下,你问到内存和电脑分离的问题,我们觉得挺好的。
在旧系统中,执行查询时总是存在计算和存储之间的冲突。
现在只有计算节点在工作。
他们不关心数据在哪里。
您可以使用所需的所有数据。
它实际上是解耦的。
一些计算机在高峰时段添加,在非高峰时段移除,为我们提供了比以前更大的灵活性。

总的来说,情况看起来非常好,特别是对于像我们这样波动较大、需求快速的公司。
然而,我总是对新事物感到有点不舒服,一开始这很令人沮丧。
比如一开始我们对资源调度理解不深,CPU总是爆。
后来我们发现应该根据查询类型来分配资源。
一旦我们了解了调整,一切都会好起来的。

如果你真的考虑使用它,我建议你做进一步的压力测试,看看它在你的数据量和业务场景下的表现如何。
我在这里仅举一个例子。
你必须亲自尝试一下才知道它是什么样的。

数据库设计过程包括哪几个主要阶段

老实说,数据库设计只是搭积木,但在开始之前你应该先画好图。

先说最重要的需求分析。
去年我们跑一个电商项目的时候,用户说“应该支持几千万种商品”。
但实际流量只有3 000左右,几乎打破了整个架构。
此时绘制DFD图就显得尤为重要。
你必须清楚地了解与公司的边界问题:“用户下单后,库存应该同步打折还是异步打折?”还有一点,在概念设计阶段画E-R图的时候,我一开始以为只要画一些实体关系就够了,后来发现不对劲。
比如“User”实体是否应该有手机号码,这直接关系到后续表结构的设计。
还有另一个重要的细节。
将逻辑设计转换为关系模型时,不能省略外键约束。
去年,由于外键设置不正确并且数据被随机更改,我们正处于集体退出一个项目的边缘。
等等,还有别的事。
在物理设计阶段选择索引时序尤为重要。
不要在第一步中添加所有索引。
我们的测试环境有3 00GB的数据,添加所有索引会减慢查询速度。

数据库实现阶段是最繁琐的。
您必须将 E-R 图转换为 DBMS 可以理解的 SQL。
比如使用PostgreSQL的触发器来同步数据,但是MySQL可能要写存储过程。
说实话,这很令人困惑。
很多人不注意这一点,直接传SQL就爆炸了。

最后,在维护阶段不要成为被动的店主。
如果公司说“添加生日字段”,您可以只更改表格并完成它吗?您必须首先评估对现有索引的影响。
比如去年改字段导致主键索引失效,整个系统停运了4 8 小时。
建议设置更多的测试环境,以便可以测试小的更改。

state的字段说明