语法形式如下:
一共3张表 knowledge , knowledge_question , knowledge_answer ,数据在 6000~10000 之间。 执行的语句: 执行时间约 10分钟 ,查看执行计划如下: 全部都是全表扫描,根据MySQL联表查询的算法 Nested-Loop Join ,MySQL查询的结果集是3张表的笛卡尔积,所以效率特别低。 耗时变成 20毫秒给Where条件建立索引,并不一定会使用。 比如:在表 knowledge 的字段 update 上建立索引 idx_time : 结果执行上来看,并没有使用索引 idx_time 。 如果where条件从 k.update_time>'2019-01-03 12:00:00' 修改为 k.update_time='2019-01-03 12:00:00' (从 >变成 = ) 则会使用索引 idx_time在建立索引的时候,会遇到 Table Metadata Lock 的问题,可以先 show processlist ,找到占用表锁的连接,然后 kill 。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)