当前位置:首页 > 日记 > 正文

mysql建设表及索引使用说明详解

mysql建设表及索引使用说明详解
首先,MySQL构建表,字段需要设置为非空,以设置字段的默认值。
二、mysql构建一个表,字段要求NULL,需要设置字段的默认值,默认值不为null。
三,MySQL构建表,如果字段相当于该字段中的外键,则应编入索引。
四、mysql构建表,在不同表、列类型、类型长度、是否为空、默认值是否一致的情况下,相同的属性值字段,否则,可以正确地使用索引进行相关性和比较。
五,当使用MySQL时,SQL语句只能使用一个表的一个索引,所有字段类型都可以进行索引,多个列索引的属性最多为15个。
六。如果可以在多个索引中选择,MySQL通常使用最小行索引和索引最高值的索引。
七、指数指标的建立(一,二,三),相当于索引的建立(一),(一,二)指数和指数(一,二,三指标)。
八,MySQL必须使用以下格式来使用类似的语法来使用索引:
SELECT * FROM T1,key_col like'ab %;
九、select count(*)的语法不执行select count(col_name)快速的声明没有条件,但它执行更快,条件语句。
十。在多个条件,在那里的条件,它必须是一个key_part属性多个列的索引必须包含key_part1.for各单项指标的指数,只有通过最少的线路使用。
十一。在多重条件下,每个条件都必须是一个有效的索引。
十二,订单后面的条件必须是相同索引的属性,并且订单顺序必须是一致的(例如,升序或降序)。
十三,所有按组分组都指向同一索引的属性,索引必须保留在其关键字的顺序中。
十四,联接索引,所有匹配的字段以及应该建立适当索引的地方。
十五。智能扫描全表使用力指数通知MySQL,使用索引的效率更高。
十六、定期分析表tbl_name更新扫描表的关键词分布。
十七。定期使用慢速日志检查语句,执行解释,并分析可能改进的索引。
十八,如果条件允许,设置较大的key_buffer_size和query_cache_size值(全局参数)和sort_buffer_size值(Session变量不超过4m)。
评论
主键的名称使用以下规则:
主要的名字开始与pk_,其次是名称的表中的主键所在。主键名称长度不超过30个字符。如果太长,可简称为表的名称,缩写规则和表名称的缩写规则。主要的名字是小写英文字表达。

下面的规则用于命名外键:
外键的名字开始与fk_,其次是外键和相应的主表名,表名(不t_)。子表的名称和父表名(_)分离自己的下划线。外部关键名称长度不超过30个字符。如果太长,它可以缩写为表的名称,缩写规则和表名称的缩写规则,外键的名字是小英语单词表达。

索引的命名使用以下规则:
1)索引名用小写英文字母和数字表示,索引名的长度不能超过30个字符。
2)对应索引的主键和同名主键。
3)独特的电缆开始与uni_,其次是表名。一般电缆始于ind_,其次是表名。
4)如果索引的长度太长,可以缩写为表的名称。

指数相关的语法
例:
创建logaudit_log指数log_url(URL);
显示指数从logaudit_log
在logaudit_log下降指数log_request_time

SQL执行效率检测mysql解释
说明MySQL如何使用索引处理SELECT语句和连接表。您可以帮助选择更好的索引并编写更优化的查询语句。
使用该方法,在SELECT语句之前添加解释。
如:解释选择的姓氏,first_name形成一张,B =数据
分析结果如下:
桌上型possible_keys关键| | | | key_len | REF |行|额外
解释栏的解释:

显示该行的数据是关于哪个表的。

这是一个重要的栏目,显示什么类型的连接使用。最糟糕的连接类型是const,eq_reg,参考范围,indexhe,和所有
possible_keys
显示可应用于此表的索引。如果它是空的,则没有可能的索引。您可以从相关域的WHERE语句中选择适当的语句。
关键
索引的实际使用。如果NULL,则不使用索引。在一些情况下,MySQL将选择优化索引索引。
指数(indexname)强制使用索引或强迫MySQL忽略指数忽略指数(indexname)
key_len
所用索引的长度。在没有精度损失的情况下,越短越好。
裁判
如果可能的话,索引中的哪个列被使用,是一个常数。

MySQL认为必须检查以返回请求数据的行数。
额外的
关于MySQL如何解析查询的更多信息,可以在表4.3中讨论,但坏的例子,我们可以看到这里使用的是临时用filesort,意义MySQL不能使用在所有的指标,结果是缓慢的检索。
附加列返回的说明的含义。
不同的
一旦MySQL找到一条与该行相匹配的行,它就不再搜索了。
不存在
MySQL一旦找到与左连接标准相匹配的行,就优化左连接,
没有更多的搜索
每个检查范围
记录(指数图:#)
没有理想的索引,所以从前表中的每一行,MySQL检查哪个索引被使用,并使用它返回表中的行,这是使用索引最慢的连接之一。
filesort使用
当你看到这个的时候,查询需要optimized.mysql需要采取额外的步骤来找出如何返回的行进行排序,排序的所有行根据连接类型和所有行行指针排序键值和匹配条件的商店。
使用索引
仅从索引信息中返回列数据,而不读取实际操作。当表的所有请求列都是同一索引的一部分时,就会出现这种情况。
使用临时
当您看到这一点时,查询需要优化。
使用的地方
WHERE子句用于限制哪些行与下表匹配或返回给用户。如果不希望返回表中的所有行,并将类型全部或索引连接,则会发生这种情况,或者查询是一个问题。
不同类型连接的解释(按效率排序)
系统
该表只有一行:系统表。这是常量连接类型的特殊情况。
const
表中记录的最大值可以与查询匹配(索引可以是主索引或唯一索引)。因为只有一行,该值实际上是一个常数,因为MySQL首先读取值并将其作为常数。
eq_ref
在连接时,当MySQL查询时,从表中的表中读取表中的记录。当查询索引时,它被用作主键或键。
裁判
此连接类型时才会发生的查询使用,不唯一或主键或是这些类型的部件的键(例如,使用最左前缀)。每行前面的桌子,所有的记录将从表中读取出来的。这种类型在很大程度上依赖于匹配的记录根据指数越少越好的数量
范围
此连接类型使用索引返回范围内的一行,例如使用>或
常见问题解答

该表包含10万条记录,还有一场DateTime类型。
数据声明:
SELECT * FROM my_table哪里created_at < '2010-01-20;
通过解释检查,发现类型为全部,键为null,并且根本没有索引。
可以肯定的是,这created_at字段索引。
是什么原因
使用select count(*)看,符合条件的记录总数,这比6w!!
难怪它不使用索引。那个时候,指数是没有意义的。它就像一个有10万条记录的用户表。这是一个性别领域,不是男性或女性。在这个字段中设置索引是错误的决定。
上述声明的一点变化:
SELECT * FROM my_table哪里created_at之间'2009-12-06'and '2010-01-20;
这个问题已经解决了!
只有几百项,类型的解释范围,关键是created_at,和额外的使用。
索引的目标是最小化结果集,以便快速查询。

6万条记录占记录总数的一半,索引没有意义,所以MySQL放弃了索引的使用。
这类似于设置性别字段和添加索引。当你想挑出所有男性记录时,合格记录的数量大约占总数的一半。MySQL也不会使用这个索引。
越是独特的字段,使用索引的效果越好。
当设置一个联合索引时,唯一值越多,它就越应该放在左边。

相关文章

linux系统管理命令使用说明

linux系统管理命令使用说明

系统管理,使用说明,命令,电脑软件,linux,注释:关机命令可以安全地关闭或重新启动Linux系统。它在系统关闭之前向系统中的所有登录用户提示警告消息。 关机命令 shutdown命令可以安全地关闭或重新启动Linux系统,提示所有登录用户在系统报警系…

电脑可以上网,但不能打开QQ空间和QQ

电脑可以上网,但不能打开QQ空间和QQ

解决方案,空间,游戏,电脑软件,QQ,问题: 客户端计算机病毒,分离的病毒文件是空的,导致计算机的正常上网,但QQ空间无法打开,登录QQ后,单击下一步的QQ头像QQ空间(如下图)图标,打开QQ空间布局混乱,它可以看不清楚,不能在QQ空间进入游戏。 答案uff1a 它必…

的过程,是一个mmups.exeMMUPs查询流

的过程,是一个mmups.exeMMUPs查询流

查询,是一个,流程,过程,电脑软件,点评:mmups.exe是roimoi /媒体汽车广告软件相关进程 进程文件:MMUPs或mmups.exe 进程名称:roimoi /媒体汽车广告 过程类别:安全风险的过程 英文描述: mmups.exe是的一部分,如果roimoi /媒体汽车广告。这个过程…

微软已经发现了三大功能的网页,网页

微软已经发现了三大功能的网页,网页

网页,加载,三大,发现了,快速,评论:揭露IE11浏览器三功能可以让用户更好地搜索网络信息 Internet Explorer 11或IE11浏览器,IE浏览器是微软家族的最新成员。它也是最快的浏览器之一。微软今天在IE博客中展示了IE的三大功能,即网页预测、Web预加…

在shell中同时读取多个文件的方法

在shell中同时读取多个文件的方法

文件,方法,读取,多个,电脑软件,注释:在shell脚本中,有很多方法可以一行一行地读取文件。 1。单文件读取 在shell脚本下,可以以多种方式逐行读取文件,如下所示: 在`猫$ { input_filename }线` 做 echo $线 多恩 读取行 做 echo $线 做 第二种方…

如何连接数据库的PHP的mysqli扩展

如何连接数据库的PHP的mysqli扩展

扩展,连接数据库,电脑软件,mysqli,PHP,mysqli是一个函数在PHP5的唯一可用的,没有扩展的朋友可以打开你的php.ini配置文件。 看了下面的语句:推广= php_mysqli.dll修改它:推广= php_mysqli.dll。 与MySQL相比,它有许多新功能和优点。 (1)支持本地…

MySQL按中文字段排序

MySQL按中文字段排序

中文,排序,字段,电脑软件,MySQL,如果这个问题不解决,那么MySQL将无法真正处理中国。问题是因为查询字符串中的MySQL是不区分大小写,在MySQL编译设置为默认字符集字符的比较ISO-8859,所以汉字编码字符大小写转换过程所造成的这种现象。 uff1a…

对XP中最后一个正确配置函数的深入

对XP中最后一个正确配置函数的深入

函数,配置,正确,电脑软件,XP,注释:最后一个正确的配置早在Windows 2000和2003系统中,今天的WindowsXP仍然保持此功能。 但也有很多人对最近正确配置的功能不太了解,甚至从未使用过。如果你换了系统,启动失败,或者想取消以前的修改,你可以使用这…

微软新的补丁修复Win8.1鼠标延迟问

微软新的补丁修复Win8.1鼠标延迟问

鼠标,锁定,延迟,迟钝,补丁,点评:当用户使用Win8.1和Server 2012 R2平台运行一些特殊的桌面游戏,用户的鼠标点击会出现反应迟钝或锁定。 微软解释:当用户使用Win8.1和Server 2012 R2平台运行一些特殊的桌面游戏,用户的鼠标点击会出现反应迟钝或…

MySQL是如何用中文排序的

MySQL是如何用中文排序的

中文排序,如何用,电脑软件,MySQL,SQL代码 复制代码代码如下所示: * Navicat MySQL数据传输 源服务器:本地 源服务器版本:50022 源主机:本地:3306 源数据库:测试 目标服务器类型:MySQL 目标服务器版本:50022 文件编码:65001 日期:2012-11-19 15:46:…

oracle分区表的设计

oracle分区表的设计

分区表,电脑软件,oracle,分区表的概念 分区是致力于解决支持最大的表和索引的关键问题。利用其分解成更小的、易于管理的方法称为分片(块)。一旦分区定义,SQL语句可以访问操作的分区而不是整个表,从而提高管理效率。分区数据仓库的应用是非常有…

linuxvi命令详解

linuxvi命令详解

命令详解,电脑软件,linuxvi,评论:linux vi命令完整命令,供需要的朋友参考。 linux下的vi命令 进入vi的命令 vi文件名:打开或创建一个新文件,并将光标放在第一行。 文件名:打开文件,把光标放在N行上。 文件名:打开文件,把光标放在最后一行。 模式文…