MySql 数据量大时索引无效! 如题,语句是这样子的:explain select * from m_service_message s where s.service_id LIKE '/88BA9880-D071-482E-817B-425A6A9D6DDD%'; 索引没有命中 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果把like改为 =,索引是可以命中的,说明是like的原因,索引应该没问题。这个id的记录在表里占了60%左右,请问这种问题要怎么处理? s.service_id LIKE '/88BA9880-D071-482E-817B-425A6A9D6DDD%'; 这个条件估算一下大概会有多少记录满足条件,如果达到 30% 则MYSQL不会再使用索引。因为使用索引的开销反而更大。 这个条件的记录数有20多万,达到50%左右。需求是要满足模糊查询,请问有好的解决方案吗?没有好的办法。50%的数据,显然使用索引已经没什么意义了。试想一下,如果在全班同学中查找所有男生, 哪怕手上有哪一张表按男女排好序的,你也不可以再去先看男女排序表找到学号,再到 花名册表(以学号排序)再找到姓名及其它字段。 MYSQL认为还不如直接在花名册中全表扫描一遍高效。 mysql与windows编码问题 insert...select问题 这个考勤如何统计 存储过程输出参数为null?? 如何安全的配置和应用MySQL数据库? 求一个存储过程的解决方案 请教mysql executeBatch 越来越慢的问题 求一条查询语句 怎样使用mysql的jdbc驱动程序? mysql问题,我的数据库和表都统一了utf8_general_ci,为什么还报这个错 请问几个SQL语句group by字句的使用。 mysql 主键排序 为什么还出现 Using filesort
如果把like改为 =,索引是可以命中的,说明是like的原因,索引应该没问题。这个id的记录在表里占了60%左右,请问这种问题要怎么处理?
这个条件的记录数有20多万,达到50%左右。需求是要满足模糊查询,请问有好的解决方案吗?没有好的办法。50%的数据,显然使用索引已经没什么意义了。
试想一下,如果在全班同学中查找所有男生, 哪怕手上有哪一张表按男女排好序的,你也不可以再去先看男女排序表找到学号,再到 花名册表(以学号排序)再找到姓名及其它字段。 MYSQL认为还不如直接在花名册中全表扫描一遍高效。