MySQL单表索引设置

MySQL单表索引设置,第1张

1、索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描

2、应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描

3、值分布很稀少的字段不适合建索引,例如”性别”这种只有两三个值的字段

4、字符字段只建前缀索引

5、字符字段最好不要做主键

6、不用外键,由程序保证约束

7、尽量不用UNIQUE,由程序保证约束

8、使用多列索引时主意顺序和查询条件保持一致,同时删除不必要的单列索引

在mysql中,索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。

通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列即可。

通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列。否则,数据库系统将读取每条记录的所有信息进行匹配。

可以把索引比作新华字典的音序表。例如,要查“库”字,如果不使用音序,就需要从字典的 400 页中逐页来找。但是,如果提取拼音出来,构成音序表,就只需要从 10 多页的音序表中直接查找。这样就可以大大节省时间。

因此,使用索引可以很大程度上提高数据库的查询速度,还有效的提高了数据库系统的性能。

索引的优缺点

索引有其明显的优势,也有其不可避免的缺点。

优点

索引的优点如下:

1、通过创建唯一索引可以保证数据库表中每一行数据的唯一性。

2、可以给所有的 MySQL 列类型设置索引。

3、可以大大加快数据的查询速度,这是使用索引最主要的原因。

4、在实现数据的参考完整性方面可以加速表与表之间的连接。

5、在使用分组和排序子句进行数据查询时也可以显著减少查询中分组和排序的时间

缺点

增加索引也有许多不利的方面,主要如下:

1、创建和维护索引组要耗费时间,并且随着数据量的增加所耗费的时间也会增加。

2、索引需要占磁盘空间,除了数据表占数据空间以外,每一个索引还要占一定的物理空间。如果有大量的索引,索引文件可能比数据文件更快达到最大文件尺寸。

3、当对表中的数据进行增加、删除和修改的时候,索引也要动态维护,这样就降低了数据的维护速度。

使用索引时,需要综合考虑索引的优点和缺点。

1.UNIQUE 关键字建唯一索引\x0d\x0amysql>CREATE TABLE `wb_blog` ( \x0d\x0a-> `id` smallint(8) unsigned NOT NULL, \x0d\x0a-> `catid` smallint(5) unsigned NOT NULL DEFAULT '0', \x0d\x0a-> `title` varchar(80) NOT NULL DEFAULT '', \x0d\x0a -> `content` text NOT NULL, \x0d\x0a -> PRIMARY KEY (`id`), \x0d\x0a-> UNIQUE KEY `catename` (`catid`) \x0d\x0a->) \x0d\x0a如果建好表了,可以用以下语句建\x0d\x0a mysql>CREATE UNIQUE INDEX catename ON wb_blog(catid) \x0d\x0a\x0d\x0a2.联合索引\x0d\x0aALTER TABLE `tasks`\x0d\x0aADD INDEX `testabc` (`title`, `created`) \x0d\x0a\x0d\x0a3联合唯一索引(假设有这个需求,在同一天内不能建两个tiltle一样的任务)\x0d\x0aALTER TABLE `tasks`\x0d\x0aADD UNIQUE INDEX `testabc` (`title`, `created`) \x0d\x0a\x0d\x0a数据库建索引的科学性事关数据库性能,索引也不是越多越好。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11324410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存