MySQL 索引

来源:互联网 发布:java开发实例 编辑:程序博客网 时间:2024/06/06 18:28

1、查看当前使用的数据库

select database();



2、为表增加索引

添加的索引名为book_index,它基于如下两列:title列的前10个字符和pub_year列的前两个字符。在索引中限定字符数有助于精简索引,增加速度。



fulltext索引

fulltext为text、char、varchar列添加索引。这种类型的索引必须使用fulltext功能(match...against..)

match(column)against(string)此函数仅用于fulltext索引和where子句中。

fulltext索引适用于表类型为MyISAM的表

在网上查看修改表类型的方法,语句:alter table books type=MyISAM

但总是出现语法错误,不知道是不是版本的问题

在mysql官网上搜了一下,找到了解决方法

首先用show engines语句,查看支持的引擎。

如果此版本支持MyISAM,则再输入语句:ALTER TABLE  books ENGINE=MyISAM



为表books增加一个fulltext索引


再用用前面提到的match()against()语句

用于fulltext索引和where子句中,在这些子句中,它可以是为给定字符串索引列的条件,包含空格字符串的文本被解析成字节码,因此与之匹配的列至少包含一个字节码,小的字节码(不超过3个)会被忽略

(此例查找的书名,在books表中一共有三项纪录,其中一项为The End of the Affair)


3、常见的两种表类型: MyISAM和InnoDB

MyISAM:它是存储记录和文件的标准方法。与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具。 MyISAM表格可以被压缩,而且它们支持全文搜索。它们不是事务安全的,而且也不支持外键如果执行大量 的SELECT,MyISAM是更好的选择

InnoDB:这种类型是事务安全的。它与BDB类型具有相同的特性,它们还支持外键。InnoDB表格速度很快,具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它。如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。

原创粉丝点击