
一共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 。工具:mysql数据库创建一个user的表里边的字段1.普通索引 添加INDEXALTER TABLE `table_name` ADD INDEX index_name ( `column` )下面演示下给user表的name字段添加一个索引2.主键索引 添加PRIMARY KEYALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )3.唯一索引添加UNIQUEALTER TABLE `table_name` ADD UNIQUE ( `column` )4.全文索引添加FULLTEXTALTER TABLE `table_name` ADD FULLTEXT ( `column`)5.如何添加多列索引ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )mysql 如何给SQL添加索引
1.添加PRIMARY KEY(主键索引)
alter table `table_name` add primary key(`column`)
2.添加UNIQUE(唯一索引)
alter table `table_name` add unique(`column`)
3.添加普通索引
alter table `table_name` add index index_name(`column`)
4.添加全文索引
alter table `table_name` add fulltext(`column`)
5.添加多列索引
alter table `table_name` add index index_name(`column1`,`column2`,`column3`)
评论列表(0条)