学习地址:https://cloud.tencent.com/developer/article/1004912
索引分类:(1) 主键索引 PRIMARY KEY
(2) 唯一索引 UNIQUE
(3) 普通索引 INDEX
(4) 组合索引 INDEX
(5) 全文索引 FULLTEXT
查看sql效率:explain select * from t_credit_detail where Flistid +1 > '2000000608201108010831508722'\G
FULLTEXT 可以解决like语句查询慢问题:
参考文章:https://www.sunzhongwei.com/mysql-full-text-retrieval-scheme-fulltext-indexing
https://blog.csdn.net/bbirdsky/article/details/45368897
单个字符如何检索
我目前采用的一套不太满意的方案:
- 搜索词为一个字时,like 最重要的字段,例如 name。这个地方是有问题的,例如数据量大时,性能有问题。
- 搜索词多于一个字时,使用 fulltext search
if ($keyword) {
if (mb_strlen($keyword) == 1) {
// like name field
$sql->where("name", 'like', '%'.$keyword.'%');
} else {
$sql->whereRaw("match(name, description) against(? IN NATURAL LANGUAGE MODE)", $keyword);
}
}