mysql phpMyAdmin几个问题:

时间:2011-08-06 15:16:24

标签: php mysql phpmyadmin

我对mysql phpMyadmin环境很新,我想有一些区域 1.我需要一个最多约500个字符的文本字段。 那必须是“TEXT”字段吗?是否需要应用程序负责长度?

  1. 索引。我理解当我将一个字段表示为“索引”时,这意味着该字段将具有指针表,并且在每个字段包含WHERE时,搜索将由该字段优化(log n复杂度)。但是,如果我将一个字段表示为事后索引,会发生什么?在它有一些行之后说?我可以发出像“遍历所有表并索引该字段”这样的命令吗?

  2. 当我将字段标记为已建立索引时,我有时会在phpMyAdmin中将其标记为具有键名

  3. 当我编写php时,通过索引字段访问表,我是否需要额外的努力才能使用在“结构”视图中写下的键名来将表用作索引,或者这个关键名是否在幕后使用,我不应该关心它?

  4. 我有时会得到完全引用两个或多个字段的键名。这些字段显示在另一个之上。我不知道它是怎么发生的,但我需要它们只能索引一个字段。到底是怎么回事 ?

  5. 我在数据库中使用UTF-8值。当我创建它时,我认为我将其标记为utf8_unicode_ci,并且某些字段标记为utf8_general_ci,这有关系吗?我可以返回并将整个数据库定义更改为utf8_general_ci吗?

  6. 我认为那是相当多的, 我提前谢谢你! 泰德

2 个答案:

答案 0 :(得分:2)

首先,请注意,这本身并不是关于phpmyadmin的内容,而是关于mysql / databases的更多内容。

1)

索引意味着您创建存在的值的列表(大多数时候是树)。这样,您可以轻松找到具有该值/那些值的行。在您之前插入值之后,可以很容易地生成此树。请注意,这意味着所有“添加到索引”命令都放在一起,所以不要在带有大量条目的“实时”表上进行操作。但您可以随时添加索引。只需添加索引,即可为空表或“已用”表添加索引。

2)

我不知道你的意思。索引有一个名称,它并不重要。 (主)键是索引,但并非所有索引都是键。

3)

你不需要'强制'mysql使用密钥,优化器最好知道如何以及何时使用密钥。如果你的钥匙是正确的,他们会被使用,如果他们不正确,他们就无法使用,所以你不能强迫它:换句话说:不要考虑它:)

4)

如果您同时将2个字段标记为键,则PHPMYADMIN会生成复合键。这很烦人,可能是错的。如果一次搜索两件事,可以使用复合键,但如果搜索一件事,则不能。只需将它们一次标记为关键值,或手动使用正确的SQL命令。

5)

你可以改变你喜欢的任何东西,但我不知道你的价值会发生什么。更好地手动检查:)

答案 1 :(得分:0)

如果您需要一个包含500个字符的字段,则可以使用VARCHAR执行此操作。只需将其长度设置为500。

  1. 您不按字段索引,索引整列。因此,表中是否包含数据并不重要。所有行都将被编入索引。

  2. 不是问题

  3. 只要可以,就会使用索引。您只需要担心使用在查询的WHERE部分中编入索引的相同列。 Read about it here

  4. 您可以在索引中添加任意数量的列。例如,如果向索引添加“foo”,“bar”和“ming”列,则将按顺序对使用WHERE子句中的那些列的搜索进行速度优化。同样,上面的链接解释了这一切。

  5. 我不知道。我百分百肯定如果你在数据库中只使用UTF-8值,那就不重要了。您可以稍后更改此设置,如此Stackoverflow问题中所述:How to convert an entire MySQL database characterset and collation to UTF-8?

  6. 我建议您为HeidiSQL废弃PHPMyAdmin。 HeidiSQL是一个管理所有MySQL服务器的Windows客户端。它有许多很酷的功能,比如将表或数据库直接从一个MySQL服务器复制到另一个MySQL服务器。尝试一下(它是免费的)