草庐IT

Indexing

全部标签

mysql - 如何让 MySQL 使用 INDEX 进行 View 查询?

我正在使用JavaEE上的MySql数据库开发Web项目。我们需要一个View来汇总3个总行超过300万行的表中的数据。每个表都是用索引创建的。但是我还没有找到一种方法可以从我们使用[groupby]创建的View中利用条件选择语句检索中的索引。我收到了来自的人的建议在MySql中使用View不是一个好主意.因为您不能像在oracle中那样为mysql中的View创建索引。但是在我进行的一些测试中,可以在View选择语句中使用索引。也许我以错误的方式创建了这些View。我将用一个例子来描述我的问题。我们有一个记录NBA比赛高分数据的表格,在列[happend_in]上有索引CREATE

mysql - 如何让 MySQL 使用 INDEX 进行 View 查询?

我正在使用JavaEE上的MySql数据库开发Web项目。我们需要一个View来汇总3个总行超过300万行的表中的数据。每个表都是用索引创建的。但是我还没有找到一种方法可以从我们使用[groupby]创建的View中利用条件选择语句检索中的索引。我收到了来自的人的建议在MySql中使用View不是一个好主意.因为您不能像在oracle中那样为mysql中的View创建索引。但是在我进行的一些测试中,可以在View选择语句中使用索引。也许我以错误的方式创建了这些View。我将用一个例子来描述我的问题。我们有一个记录NBA比赛高分数据的表格,在列[happend_in]上有索引CREATE

MySQL 无法创建外键约束

我在为mysql数据库中的现有表创建外键时遇到一些问题。我有表exp:+-------------+------------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-------------+------------------+------+-----+---------+-------+|EID|varchar(45)|NO|PRI|NULL|||Comment|text|YES||NULL|||Initials|varchar(255)|NO||NULL|||ExpDate

MySQL 无法创建外键约束

我在为mysql数据库中的现有表创建外键时遇到一些问题。我有表exp:+-------------+------------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-------------+------------------+------+-----+---------+-------+|EID|varchar(45)|NO|PRI|NULL|||Comment|text|YES||NULL|||Initials|varchar(255)|NO||NULL|||ExpDate

mysql - MySQL 是否索引 NULL 值?

我有一个MySQL表,其中90%的行的索引INT列将为0。如果我将这些行更改为使用NULL而不是0,它们是否会被排除在索引之外,从而使索引缩小90%左右? 最佳答案 http://dev.mysql.com/doc/refman/5.0/en/is-null-optimization.htmlMySQL可以对col_nameISNULL执行与col_name=constant_value相同的优化。例如,MySQL可以使用索引和范围来搜索NULL和ISNULL。 关于mysql-MySQ

mysql - MySQL 是否索引 NULL 值?

我有一个MySQL表,其中90%的行的索引INT列将为0。如果我将这些行更改为使用NULL而不是0,它们是否会被排除在索引之外,从而使索引缩小90%左右? 最佳答案 http://dev.mysql.com/doc/refman/5.0/en/is-null-optimization.htmlMySQL可以对col_nameISNULL执行与col_name=constant_value相同的优化。例如,MySQL可以使用索引和范围来搜索NULL和ISNULL。 关于mysql-MySQ

mysql - 了解 MySQL 查询中的多列索引

这里是查询:SELECT*FROMtableWHEREaccountid=1ORDERBYlogindateDESCLIMIT1现在,如果我在字段上添加一个包含多列的索引:INDEX(accountid,logindate)MySQL会利用这个多列索引吗?或者它不会因为一个字段在where子句中而另一个字段在order语句中而不使用它?还是我按照多列索引的顺序使用字段就没有关系? 最佳答案 好问题。索引从左到右工作,因此您的WHERE条件将使用索引。在这种情况下,排序也会利用索引(执行计划如下)。来自manual:Theindexc

mysql - 了解 MySQL 查询中的多列索引

这里是查询:SELECT*FROMtableWHEREaccountid=1ORDERBYlogindateDESCLIMIT1现在,如果我在字段上添加一个包含多列的索引:INDEX(accountid,logindate)MySQL会利用这个多列索引吗?或者它不会因为一个字段在where子句中而另一个字段在order语句中而不使用它?还是我按照多列索引的顺序使用字段就没有关系? 最佳答案 好问题。索引从左到右工作,因此您的WHERE条件将使用索引。在这种情况下,排序也会利用索引(执行计划如下)。来自manual:Theindexc

mysql - SQL:在 MySQL 中将现有列设置为主键

我有一个包含3列的数据库:id,name,somethingelse这个表没有设置索引,我得到“没有定义索引!”在phpmyadminid是一个7位字母数字值,对每一行都是唯一的。我想将Drugid设置为主键/索引(我不知道是否有区别)由于我是新手,请详细解释。谢谢。 最佳答案 在SQL中运行:ALTERTABLEtableNameADDPRIMARYKEY(id)---orDrugid,whicheveryouwantittobePK或使用PHPMyAdmin接口(interface)(表结构)

mysql - SQL:在 MySQL 中将现有列设置为主键

我有一个包含3列的数据库:id,name,somethingelse这个表没有设置索引,我得到“没有定义索引!”在phpmyadminid是一个7位字母数字值,对每一行都是唯一的。我想将Drugid设置为主键/索引(我不知道是否有区别)由于我是新手,请详细解释。谢谢。 最佳答案 在SQL中运行:ALTERTABLEtableNameADDPRIMARYKEY(id)---orDrugid,whicheveryouwantittobePK或使用PHPMyAdmin接口(interface)(表结构)