MySQL建立索引目的?
MySQL建立索引最简单的目的就是对数据库的访问会快一点。一个表,如果没有索引,数据量少点的时候你不会觉得数据库本身的的性能问题,但是随着数据量的显著增加,比如超过一万条记录之后,可能你就会遇到数据库操作的性能问题了,这个时候,你建立索引就会显著的改善数据库的写入性能。
mysql中不能创建索引的语句?
一、创建索引
1.PRIMARY KEY(主键索引)
mysql > ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.UNIQUE(唯一索引)
mysql > ALTER TABLE `table_name` ADD UNIQUE (`column` )
3.INDEX(普通索引)
mysql > ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.FULLTEXT(全文索引)
mysql > ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
图片来源:网络
5.多列索引(组合索引)
mysql > ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
CREATE TABLE table_name ( ID INT NOT NULL, username VARCHAR(16) NOT NULL, city VARCHAR(50) NOTNULL, age INT NOT NULL );
MySQL中如何设置唯一索引,联合索引?
1.UNIQUE 关键字建唯一索引
mysql> CREATE TABLE `wb_blog` (
-> `id` smallint(8) unsigned NOT NULL,
-> `catid` smallint(5) unsigned NOT NULL DEFAULT '0',
-> `title` varchar(80) NOT NULL DEFAULT '',
-> `content` text NOT NULL,
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `catename` (`catid`)
-> ) ;
如果建好表了,可以用以下语句建
mysql> CREATE UNIQUE INDEX catename ON wb_blog(catid);
2.联合索引
ALTER TABLE `tasks`
ADD INDEX `testabc` (`title`, `created`) ;
3联合唯一索引(假设有这个需求,在同一天内不能建两个tiltle一样的任务)
ALTER TABLE `tasks`
ADD UNIQUE INDEX `testabc` (`title`, `created`) ;
数据库建索引的科学性事关数据库性能,索引也不是越多越好。