我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql索引建立规则有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql索引建立规则有哪些

mysql索引建立规则有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

  mysql建立索引常用的规则如下:

  1、表的主键、外键必须有索引;

  2、数据量超过300的表应该有索引;

  3、经常与其他表进行连接的表,在连接字段上应该建立索引;

  4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

  5、索引应该建在选择性高的字段上;

  6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

  7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引中的主列字段,一般是选择性较好的字段; B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引; C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;

  8、频繁进行数据操作的表,不要建立太多的索引;

  9、删除无用的索引,避免对执行计划造成负面影响; 以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大

  你现在种方法效率其实是差不多的,都非常低,极端低,最低。

  一、如果不改进效率,只简化程序,我有建议你对新闻类别进行二进制编码,仍然使用features一个字段来表示,字段为整数类型,使用最低开始的四个二进制位是否为1来表示是否为图片新闻、头条新闻、首页新闻、重要新闻,例如7(二进制的0111)表示具有头条、首页、重要三个属性。查询的时候使用位运算&来实现,图片新闻、头条新闻、首页新闻、重要新闻的权重分别是8、4、2、1,这时候假若调用三条是图片新闻的新闻时,直接可以用sql语句:

  select * from news where features & 8=8 order by news_id desc limit 0,3;

  假若调用三条是图片新闻、并且重要新闻时,直接可以用sql语句:

  select * from news where features & 9=9 order by news_id desc limit 0,3;

  看见没有,可以查询具有一种属性的,也可以查询具有多种属性的数据,程序很方便。

  二、高效的办法是另外建立表来记录各类新闻,冗余保存数据到多个表中,需要查什么新闻就在哪一个表中查询。但是程序会非常复杂,保存的时候要根据类别存储到不同的表中,修改的最麻烦,如果修改类别还需要把数据从一个表移动到另外的表。当然,作为新闻这样的应用,都是保存一次、修改一二次、查看成千上万次,为了整体效率肯定是关键优化查询代码。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql索引建立规则有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql建立索引的规则是什么

建立索引的规则如下:唯一性:索引列的值应该是唯一的,这样可以通过索引来确保数据的唯一性。选择性:索引列的值应该具有高选择性,即不同值的数量越多越好。选择性越高,索引的效果就越好。长度:索引列的长度应该尽可能小,这样可以减少索引占用的存储空间
mysql建立索引的规则是什么
2024-04-09

mysql创建索引的原则有哪些

创建索引的原则有以下几点:1. 选择合适的列:选择作为索引的列应该是经常用于查询和连接的列,而不是很少使用的列。2. 索引的选择性:选择具有高选择性的列作为索引,即该列的值能够唯一或几乎唯一地标识每一行数据。3. 索引的大小:创建索引会占用
2023-09-21

MySQL索引设计原则有哪些

这篇文章主要介绍了MySQL索引设计原则有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL索引设计原则有哪些文章都会有所收获,下面我们一起来看看吧。哪些情况适合创建索引? 字段的数值有唯一性的限制。
2023-01-31

mysql索引建立的原则是什么

小编给大家分享一下mysql索引建立的原则是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、尽量选择区分度高的列来建立索引。2、频繁查询列适合建立索引。3、遇到联合索引时,想想最左边的匹配原则。4、like模糊查询时
2023-06-25

mysql建立索引要注意哪些事项

在建立索引时,需要注意以下几个事项:选择合适的列:只有在频繁用作查询条件的列上建立索引才会带来性能提升。通常,选择主键、唯一约束列或经常用作查询条件的列作为索引列。不要过度索引:过多的索引会增加维护成本,并且在插入、更新和删除数据时会降低性
mysql建立索引要注意哪些事项
2024-04-09

mysql索引的使用原则有哪些

这篇文章将为大家详细讲解有关mysql索引的使用原则有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、最左前缀原则。一个联合索引(a,b,c),如果有一个查询条件是a,有b,那么他就走索引,如果有一
2023-06-15

浅谈Mysql哪些字段适合建立索引

1 数据库建立索引常用的规则如下:1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索
2022-05-25

MySQL索引建立的基本原则是什么

MySQL索引建立的基本原则有以下几点:索引应该建立在经常用于检索数据的列上,比如在WHERE子句、JOIN子句或ORDER BY子句中经常用到的列上建立索引。索引应该选择性高,即不同的值较为均匀地分布在索引列中,这样可以更快地定位到所需的
MySQL索引建立的基本原则是什么
2024-03-13

java中有哪些规则引擎

这期内容当中小编将会给大家带来有关java中有哪些规则引擎,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对
2023-06-14

mysql排序规则有哪些

MySQL提供了多种排序规则,具体如下:ASC(升序):按照字母或数字的升序排列。DESC(降序):按照字母或数字的降序排列。UTF8_BIN:按照字符串的二进制值进行排序,适用于区分大小写和重音符号。UTF8_GENERAL_CI:
mysql排序规则有哪些
2024-04-09

mysql创建索引的方式有哪些

在MySQL中,有以下几种方式可以创建索引:1. CREATE INDEX语句:可以使用CREATE INDEX语句来创建索引。语法如下:```CREATE INDEX index_name ON table_name (column_na
2023-09-26

编程热搜

目录