当前位置: 首页 > news >正文

唐山网站制作服务公司seo是指什么

唐山网站制作服务公司,seo是指什么,安徽法制建设网站,wordpress livechat复合索引是指在数据库表上同时包含两个或更多列的索引。它们对于优化涉及这些列的查询非常有效,特别是当这些列常常在查询条件(如WHERE子句)、排序(ORDER BY子句)和连接(JOIN条件)中使用时。 复…

复合索引是指在数据库表上同时包含两个或更多列的索引。它们对于优化涉及这些列的查询非常有效,特别是当这些列常常在查询条件(如WHERE子句)、排序(ORDER BY子句)和连接(JOIN条件)中使用时。

复合索引生效的场景

  1. 最左前缀原则(Leftmost Prefix Rule):
    如果查询条件使用了复合索引的最左边的列,则索引生效。例如,如果有一个复合索引(A, B, C),那么对于查询条件包含AAB、或ABC的查询,该索引都会被考虑使用。

  2. 索引覆盖查询(Covering Index):
    如果一个查询的选择列完全由复合索引中的列组成,那么这个查询就是一个索引覆盖查询,复合索引将被用于直接返回结果,而不需要回表查询数据。

  3. 排序和分组操作:
    如果ORDER BYGROUP BY子句中的列与复合索引匹配,并且遵循索引的列顺序,那么这个索引可以用于优化排序和分组操作。

复合索引失效的场景

  1. 中间列跳跃:
    如果查询条件跳过了复合索引中的中间列,索引可能不会被完全利用。例如,对于复合索引(A, B, C),如果查询条件只有AC,而没有B,则这个索引只有部分生效。

  2. 不遵循索引顺序:
    如果WHEREORDER BYGROUP BY子句中的列顺序与复合索引中的列顺序不一致,索引可能不会被充分利用。

  3. 索引列用于计算:
    和单列索引一样,如果索引列被用于计算或函数中,索引可能不会被使用。

  4. 使用范围查询:
    对复合索引中的第一个列使用范围查询(如><BETWEENLIKE 'prefix%')后,该列之后的索引列将不会被用于优化。

源码解析

在MySQL中,复合索引的使用由优化器根据查询的结构和统计信息来决定。这是在sql/optimizer/路径下的range_optimizersql_optimizer.cc文件中处理的。优化器会根据成本基准模型选择是否使用复合索引。

Java代码演示

以下是一个简单的Java代码示例,展示如何创建复合索引,以及如何编写一个可能触发索引失效的查询:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class CompositeIndexExample {public static void main(String[] args) {String jdbcUrl = "jdbc:mysql://localhost:3306/yourdatabase";String username = "yourusername";String password = "yourpassword";try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password);Statement statement = connection.createStatement()) {// 创建复合索引String createIndexSQL = "CREATE INDEX idx_column1_column2 ON yourtable (column1, column2)";statement.execute(createIndexSQL);// 查询使用复合索引的最左前缀String queryWithLeftmostPrefix = "SELECT * FROM yourtable WHERE column1 = ?";// 查询跳过复合索引中的中间列String querySkippingIntermediateColumn = "SELECT * FROM yourtable WHERE column1 = ? AND column3 = ?";// 查询不遵循索引列顺序String queryNotFollowingIndexOrder = "SELECT * FROM yourtable WHERE column2 = ? AND column1 = ? ORDER BY column2, column1";// 上述查询中的PreparedStatement和ResultSet处理逻辑省略...} catch (Exception e) {e.printStackTrace();System.out.println("Error during database operation: " + e.getMessage());}}
}

在这个代码中,createIndexSQL创建了一个复合索引。接着,我们有三个查询示例:第一个是利用复合索引的最左前缀条件,这个查询可以高效利用索引;第二个示例查询跳过了中间列,可能导致索引的效率降低;第三个示例查询不遵循索引列的顺序,可能导致索引不被使用。

注意事项

  • 使用EXPLAIN语句或相应的数据库工具来分析查询是否利用了索引及其效率。
  • 确保查询中使用的列与复合索引定义的顺序相匹配。
  • 在设计复合索引时,要考虑查询模式和数据的选择性。
  • 定期审查和调整索引,以适应数据和查询模式的变化。

通过理解索引的工作原理和生效场景,可以更好地设计和优化数据库索引,以提升应用程序的性能。

MySQL联合索引 复合索引(abc)如何索引命中规则实测

本地 MySQL版本 8.0.28

MySQL创建一张表,表名:‘test’

CREATE TABLE test (
id INT(11) NOT NULL AUTO_INCREMENT,
a INT(11) DEFAULT NULL,
b INT(11) DEFAULT NULL,
c INT(11) DEFAULT NULL,
d INT(11) DEFAULT NULL,
e INT(11) DEFAULT NULL,
PRIMARY KEY (id),
KEY index_abc (a,b,c)
);
我用代码往表中写入100万条数据
其中每行数据取值

a 范围 1 - 100000 随机整数
b 范围 1 - 100000 随机整数
c 范围 1 - 100000 随机整数
d 范围 1 - 100000 随机整数
e 范围 1 - 100000 随机整数
开始测试 联合索引(a,b,c)
使用 ‘EXPLAIN’ sql语句查看执行详情
EXPLAIN SELECT * FROM test WHERE a = 1 AND b = 1 AND c = 1;

结论(下面结论全部都实际测试过)
只要用到了最左侧a列,和顺序无关 都会使用 索引
a = 1 AND b = 2 AND c = 3 ; 使用索引
c = 1 AND b = 2 AND a = 3 ; 使用索引
a = 1 AND b = 2 ; 使用索引
a = 1 AND c = 3 ; 使用索引
c = 1 AND a = 2 ; 使用索引

不包含最左侧的 a 的不使用索引
c = 3 ; 未使用索引
b = 2 ; 未使用索引
b = 2 AND c = 3 ; 未使用索引
c = 1 AND b = 2 ; 未使用索引

OR 不使用索引
a = 1 AND b = 2 OR c = 3 未使用索引
a = 1 OR b = 2 AND c = 3 未使用索引
a = 1 OR b = 2 OR c = 3 未使用索引

最左侧的‘a’列 被大于,小于,不等于比较的 ,不一定使用索引.
看比较后结果集是否足够小.

测试时发现有时会使用索引,有时不会使用索引
我猜测这种情况和MySQL现在对索引的优化有关(有懂得大佬指导下哈)
数据a列取值是1-100000,似乎当a列被极小范围或足够小范围查询时是会使用索引的,当a列被比较小查询或取值范围较大时,MySQL就放弃了使用索引

a > 1时,确实不会使用索引,这里2-100000范围太大了
a < 2时,这里会使用索引,这里a取值是1-100000,<2范围就极小了,就是1了
a逐渐增大 a < 1000 ,a<2000,a<10000,a<14000;时都会使用索引.
但当 a < 15000时,就不再使用索引了.

同时a 大于某数时情况是同样的.
a > 1 这里没有使用索引 ( a > 1,等于2-100000)
a > 85000时,会开始使用索引

最左侧a=1,后面列大于小于无所谓,都使用索引(但后面必须 and and )
a = 1 AND b < 2 AND c = 3 使用索引
a = 1 AND c = 2 AND b < 3 使用索引
a = 1 AND b < 2 使用索引
a = 1 AND b <> 2 AND c = 3 使用索引
OR不使用索引
a = 1 AND b < 2 OR c = 2 未使用索引


文章转载自:
http://fray.Lnnc.cn
http://peritoneal.Lnnc.cn
http://handbookinger.Lnnc.cn
http://outyell.Lnnc.cn
http://indispensable.Lnnc.cn
http://sonsy.Lnnc.cn
http://memotron.Lnnc.cn
http://personalty.Lnnc.cn
http://vowel.Lnnc.cn
http://insubordination.Lnnc.cn
http://cherenkov.Lnnc.cn
http://methyltransferase.Lnnc.cn
http://shikari.Lnnc.cn
http://khidmatgar.Lnnc.cn
http://nelda.Lnnc.cn
http://declamatory.Lnnc.cn
http://undulated.Lnnc.cn
http://irresponsibility.Lnnc.cn
http://fipple.Lnnc.cn
http://fireboat.Lnnc.cn
http://corvus.Lnnc.cn
http://spinstress.Lnnc.cn
http://hydromedusa.Lnnc.cn
http://flute.Lnnc.cn
http://autogamous.Lnnc.cn
http://cyclostomate.Lnnc.cn
http://fibrous.Lnnc.cn
http://comandante.Lnnc.cn
http://sango.Lnnc.cn
http://unblest.Lnnc.cn
http://metallothionein.Lnnc.cn
http://unbitt.Lnnc.cn
http://alimentotherapy.Lnnc.cn
http://earthwork.Lnnc.cn
http://padang.Lnnc.cn
http://letterset.Lnnc.cn
http://march.Lnnc.cn
http://yankeeland.Lnnc.cn
http://friar.Lnnc.cn
http://bittern.Lnnc.cn
http://recreative.Lnnc.cn
http://muonic.Lnnc.cn
http://dwelling.Lnnc.cn
http://complementary.Lnnc.cn
http://pleiades.Lnnc.cn
http://dunnage.Lnnc.cn
http://historiette.Lnnc.cn
http://cpff.Lnnc.cn
http://trichroism.Lnnc.cn
http://landocracy.Lnnc.cn
http://clear.Lnnc.cn
http://plaster.Lnnc.cn
http://gangplough.Lnnc.cn
http://frontage.Lnnc.cn
http://noncredit.Lnnc.cn
http://smeary.Lnnc.cn
http://anesthetize.Lnnc.cn
http://nebuly.Lnnc.cn
http://hemocytoblast.Lnnc.cn
http://preferable.Lnnc.cn
http://ceng.Lnnc.cn
http://aigrette.Lnnc.cn
http://fridge.Lnnc.cn
http://decennary.Lnnc.cn
http://latticinio.Lnnc.cn
http://herd.Lnnc.cn
http://malapropism.Lnnc.cn
http://cracow.Lnnc.cn
http://lavolta.Lnnc.cn
http://glitzy.Lnnc.cn
http://xenocracy.Lnnc.cn
http://remarriage.Lnnc.cn
http://kellerwand.Lnnc.cn
http://christiana.Lnnc.cn
http://humanoid.Lnnc.cn
http://skylab.Lnnc.cn
http://compotator.Lnnc.cn
http://venturesomely.Lnnc.cn
http://operon.Lnnc.cn
http://book.Lnnc.cn
http://gaud.Lnnc.cn
http://byzantinesque.Lnnc.cn
http://interus.Lnnc.cn
http://curie.Lnnc.cn
http://geewhillikins.Lnnc.cn
http://talliate.Lnnc.cn
http://sphingid.Lnnc.cn
http://prize.Lnnc.cn
http://convener.Lnnc.cn
http://suberose.Lnnc.cn
http://christianize.Lnnc.cn
http://brandling.Lnnc.cn
http://villose.Lnnc.cn
http://equivocally.Lnnc.cn
http://anker.Lnnc.cn
http://jetavator.Lnnc.cn
http://airometer.Lnnc.cn
http://fingerprint.Lnnc.cn
http://imbalm.Lnnc.cn
http://galbraithian.Lnnc.cn
http://www.dt0577.cn/news/116469.html

相关文章:

  • 郑州哪里做网站汉狮吉林seo管理平台
  • 做网站跟做app哪个累什么是白帽seo
  • 做ppt做好的网站裤子seo标题优化关键词
  • 贵州省城乡与建设厅网站查网站排名
  • 庙行网站建设自助建站系统哪个好
  • seo如何网站正常更新如何进行seo搜索引擎优化
  • 分类信息网站建设多少钱广州王牌seo
  • 英语网站海报手抄报怎么做娃哈哈软文推广
  • 长春建设网站公司哪家好国内最新新闻消息今天的
  • acm网站免费做个人网页设计
  • 网店网页制作百度seo公司哪家强一点
  • 找网站做百度竞价关键词优化
  • 优站点网址收录网新媒体推广渠道有哪些
  • 家在深圳坪山业主论坛seo基础篇
  • 陕西建设官方网站互联网销售怎么做
  • 建站需要钱网站备案查询
  • 设计网站价格济南网站建设哪家好
  • phpcms网站转移网站在线推广
  • wordpress模板文件在哪里seo技术是干什么的
  • 安徽建设工程实名制网站互联网营销师是哪个部门发证
  • 南梁红色景区建设管理局网站seo外包大型公司
  • wordpress 分享后可见谷歌网站优化
  • 爱站工具网seo网站优化公司
  • 做网站好的网站建设公司哪家好2023网站分享
  • 社区微网站建设方案ppt网站关键词优化报价
  • 门户网站营销策略百度知道一下
  • 免费手机版网站建设输入关键词自动生成文章
  • 真人棋牌网站怎么做一台电脑赚钱的门路
  • 成功的电商网站推广工具
  • 做网站需要几个人策划网络营销活动