美文网首页
15、MySQL创建高性能索引

15、MySQL创建高性能索引

作者: hello大象 | 来源:发表于2017-12-07 11:28 被阅读0次



索引对性能的影响:比如,数据表有一千条数据,只需要根据条件查询其中的一条,只需要针对这一列创建索引,

只扫描这一条就可以了,如果不创立索引则要扫描1000条,挨个看才能找到这条数据
索引的不良影响:
1、降低写的速度



唯一索引和主键索引的区别:



组合索引:eg:比如说要查询一本书的第一章内容在那一条,这个时候可以对章节做一个索引,但是如果要查第一章的第二小节,这样如果只创建了章的索引,需要找到第一章后,把所有小节都扫一遍,这样的话索引可以用到,但是索引的范围还是有一点大,为了降低索引范围,可以对小节再做一个索引。对章和小节这两个列同时创建一个组合索引,这样去找第一章的第二小节,就可以快速定位到
外键和全文索引基本上不去用,外键的话通常都是用业务逻辑去实现数据的关联,全文索引的限制多也不用,用全文检索引擎替代,如斯芬克斯等

对于原问题的解答:
普通索引没有其他的约束,唯一索引有唯一性约束,主键索引也有唯一约束,但是主键一张表只能有一个,唯一索引可以多个,而且主键是唯一索引,唯一索引不一定是主键索引,主键可以与外键可以进行联合数据的级联操作,保证数据的完整性。组合索引是将多个列在一起创建索引,可以覆盖多个列

Mysql索引创建原则



关于复合索引:
前缀原则:



上图创建复合索引KEY(a,b,c),并不是对a,b,c分别创建三个索引,其实是创建了一个索引,作用在a,b,c这样一个组合上面,效果就是缩短查询范围,例如章,小节,段落的例子
索引使用原则

第二个是like查询使用索引,%不能在前

如: 即使对name创建了索引,这个索引也会失效,因为like%不能在前
上图如果想用到索引要去掉like的前%。如果需求就是查询包含wang的,那就用全文索引引擎去实现。ES或斯芬克斯等

例如一个表有100条数据,把id设置为索引,而查询条件是where id > 1 and id < 100;
此时mysql会认为,本身就100条数据,要查询
其中的98条数据,而这98条数据都需要去看索引就会很慢了,mysql会直接把这100条数据都扫一遍,然后返回其中的98条,这样相比再多一个查询索引的步骤显得效率更高,mysql会自动选择放弃索引,不用手动去处理,是其内部优化器做的。

如: 此时索引name就不生效,因为本身是字符串类型,而where查询是整型
把100加引号就可以使用索引

解:
答:遵循前缀原则,%不在前原则,要看查询条件(组合索引和复合索引是一回事儿),or前后都是索引才行,对于字符串索引要加双引号

相关文章

  • face17 mysql创建高性能索引

    mysql创建高性能索引 简单描述 mysql中 索引 主键 唯一索引 联合索引的区别对数据库性能有什么影响 创建...

  • 15、MySQL创建高性能索引

    索引对性能的影响:比如,数据表有一千条数据,只需要根据条件查询其中的一条,只需要针对这一列创建索引, 唯一索引和主...

  • MySQL创建高性能索引

    索引对性能的影响:比如,数据表有一千条数据,只需要根据条件查询其中的一条,只需要针对这一列创建索引, 只扫描这一条...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • MySQL创建高性能索引(参考高性能MySQL)

    要理解MySQL的索引可以去看一看一本书的目录部分,在MySQL中存储引擎以类似的方式实现了索引,首先在索引中找到...

  • Mysql创建高性能的索引

    ---------------如果使用ORM框架,是否还需要关心索引------------- 是的,即使使用OR...

  • 高性能mysql(5)-创建高性能索引

    1.高性能索引策略 1.1独立的列 “独立的列”是指索引不能是表达式的一部分也不能使函数的参数 这种情况索引失效。...

  • 高性能MySQL-创建高性能索引

    1.1 索引基础 简单讲,索引就是书籍后面的“索引”-Index,帮助我们找到特定主题、词语,然后告诉我们具体对应...

  • 【高性能MySQL】创建高性能的索引

    索引基础 索引是存储引擎用于快速找到记录的一种数据结构。索引能轻易将查询性能提高几个数量级。索引可以包含一个或多个...

  • Mysql索引读书笔记

    ################################## 高性能Mysql第5章:索引基础 #####...

网友评论

      本文标题:15、MySQL创建高性能索引

      本文链接:https://www.haomeiwen.com/subject/asgfixtx.html