INSERT
将查询结果插入表中
INSERT INTO table_name1 (column_list)
SELECT (column_list) FROM table_name2 WHERE (condition);
UPDATE
DELETE
索引:一个单独的、存储在硬盘上的数据库结构,包含着对表中所有记录的引用指针。使用索引用于快速找出在某一列或多个列中有特定值的记录,使用索引可以有效提高查询性能。
索引在存储引擎中实现。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。
例:数据库中有2万条记录,执行下列语句 SELECT *from table where number = 100。如果没有索引,必须遍历整张表,直到找到number 等于100 的行;如果在number上建立索引,mysql不需要任何扫描,直接在索引里找100,就可以得知这一行所在的位置。
使用索引的优点
1. 可以加快查询效率,这是创建索引的最主要的原因
2. 通过创建唯一索引,可以保证表中每行数据的唯一性
3. 在实现数据的参考完整性方面,可以加速表和表之间的连接
4. 在使用分组和排序子句进行查询时,可以显著减少分组和排序的时间
缺点
1. 创建索引和维护索引需要耗费时间,随着数据量的增加所耗费的时间也会增加
2.索引占据磁盘空间。如果有大量的索引,索引文件可能比数据文件更快达到最大文件尺寸
3.当对表中的数据进行增删改的时候,索引也要动态地维护,降低数据的维护速度
索引分类
1. 普通索引和唯一索引:普通索引是mysql中的基本索引类型,允许在定义索引的列中插入重复值和空值。唯一索引,索引列的值必须唯一,允许空值。如果是组合索引,列值的组合必须唯一。主键索引是一种特殊的唯一索引,不允许空值。
2. 单列索引和组合索引:单列索引即一个索引只包含一个列,一个表可以有多个单列索引。组合索引指在表的多个字段组合上建立索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用。使用组合索引遵循最左前缀集合。
3. 全文索引:类型为FULLTEXT,在定义索引的列上支持值的全文查找,允许在这些索引列上插入重复值和空值。全文索引可以在CAHR、VARCHAR或者TEXT 类型的列上创建。mysql 只有MyISAM 存储引擎支持该索引。
4. 空间索引:对空间数据类型字段建立的索引,只能在存储引擎为MyISAM 的表上创建。