本节:索引和约束
索引
索引(Index)是一种特殊的查找表,数据库搜索引擎用来加快数据检索速度,但是也会消耗性能。简单地说,索引是一个指向表中数据的指针。一个数据库中的索引与一本书的索引目录是非常相似的。
创建索引
CREATE [UNIQUE] INDEX index_name ON table_name (column_name,column_name);
--单列索引
CREATE INDEX test_index ON `user` (`account`);
--唯一索引,加一个控制,不让有一样的内容
CREATE UNIQUE INDEX test_index ON `user` (`account`);
--组合索引
CREATE INDEX test_index ON `user` (`account`,`name`);
查看索引:
SELECT * FROM sqlite_master WHERE type = 'index';
删除索引:
DROP INDEX test_index;
虽然索引的目的在于提高数据库的性能,但这里有几个情况需要避免使用索引。使用索引时,应重新考虑下列准则:
索引不应该使用在较小的表上。
索引不应该使用在有频繁的大批量的更新或插入操作的表上。
索引不应该使用在含有大量的 NULL 值的列上。
索引不应该使用在频繁操作的列上。
约束
约束是在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。
常见的约束有:非空约束(not null)、唯一约束(unique)、主键约束(primary key)
- NOT NULL 约束
- UNIQUE 约束
- PRIMARY Key 约束