对MySQL数据类型的认识_MySQL教程
良好的逻辑设计和物理设计是高性能系统的基石,比如反范式设计可以加快某些类型的查询同时也会影响另外一些类型的查询效率,所以我们必须重视mysql对于数据库的设计(本文主要讲述表字段类型对于数据库性能的影响)。
MySQL——索引基础
本篇文章中用于测试索引创建的user表的结构如下:
什么是索引
索引(在 MySQL 中也叫“键key”)是存储引擎快速找到记录的一种数据结构
——《高性能MySQL》
我们需要知道索引其实是一种数据结构,其功能是帮助我们快速匹配查找到需要的数据行,是数据库性能优化最常用的工具之一。其作用相当于超市里的导购员、书本里的目录。
索引类型
可以使用SHOW INDEX FROM table_name;
查看索引详情
1、主键索引 PRIMARY KEY
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引。
注意:一个表只能有一个主键
2、唯一索引 UNIQUE
唯一索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。
可以通过ALTER TABLE table_name ADD UNIQUE (column);
创建唯一索引
可以通过ALTER TABLE table_name ADD UNIQUE (column1,column2)
;创建唯一组合索引
常见SQL注入的方法_MySQL教程
在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符。通常,用户可以通过以下接口调用数据库的内容:URL地址栏、登陆界面、留言板、搜索框等。这往往给骇客留下了可乘之机。轻则数据遭到泄露,重则服务器被拿下。
3、普通索引 INDEX
最基本的索引,它没有任何限制。
可以通过ALTER TABLE table_name ADD INDEX index_name (column);
创建普通索引
4、组合索引 INDEX
组合索引,即一个索引包含多个列。多用于避免回表查询。
可以通过ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3);
创建组合索引
5、全文索引 FULLTEXT
全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。
可以通过ALTER TABLE table_name ADD FULLTEXT (column);创建全文索引
索引一经创建不能修改,如果要修改索引,只能删除重建。可以使用DROP INDEX index_name ON table_name;
删除索引。
索引设计的原则
1、适合索引的列是出现在where子句中的列,或者连接子句中指定的列
2、基数较小的类,索引效果较差,没有必要在此列建立索引
3、使用短索引,如果对长字符串列进行索引,应该指定一个前缀长度,这样能够节省大量索引空间
4、不要过度索引。索引需要额外的磁盘空间,并降低写操作的性能。在修改表内容的时候,索引会进行更新甚至重构,索引列越多,这个时间就会越长。所以只保持需要的索引有利于查询即可。
相关参考ki4网
以上就是mysql索引基础详解的详细内容,更多请关注ki4网其它相关文章!
如何开启mysql慢查询日志配置_MySQL教程
开启mysql慢查询有什么用:它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL,方便我们对这些SQL进行优化。