第一步:建立测试表,创建一个简单的表,4个字段组成。年龄会为随机数。
123456 | create table customer( id int primary key , name varchar (20), age int , des text ) |
第二步:创建存储过程,
--生成百万数据;可以自定义生成条数;年龄为随机数
--第一个参数为开始序号,第二个参数为生成记录条数
1234567891011121314151617181920 | DELIMITER $$ DROP PROCEDURE IF EXISTS `insert_big_data`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_big_data`( IN START INT (10), IN max_num INT (10)) BEGIN DECLARE i INT DEFAULT 0; SET autocommit=0; REPEAT SET i=i+1; INSERT INTO customer VALUES ((START+i), CONCAT( 'tony' ,i),RAND()*90, '大数据量记录测试' ); UNTIL i = max_num END REPEAT; COMMIT ; END $$ DELIMITER ; |
第三步:执行存储过程
--清除数据
--插入数据
12 | DELETE FROM customer; CALL insert_big_data(100,1000000); --一百万条 |
ALTER TABLE customer ADD FULLTEXT FULLTEXT_name(name) WITH PARSER ngram;
explain SELECT * FROM `customer` where name like 'ny99'
--'key' 不使用索引,全表搜索,explain 可以查询
相当于
explain select * from customer where MATCH(name) AGAINST ('"ny99"' in boolean mode);
mysql 5.7以上版本支持中文全文索引,然后 新建索引时指定中文分词工具,即alter table t add fulltext idx_t (colname) with parser ngram
,
然后在使用时:match (colname) against ('"GW7S-020"' IN BOOLEAN MODE)
即可得出和 like
一样的结果
注意双引号,注意双引号,注意双引号,
--查询mysql版本 5.7.6以后MyISAM存储引擎可用全文搜索
SELECT version();
--查看表的所有索引
show index from js_demo
--删除表的索引
DROP INDEX FULLTEXT_demo_title ON js_demo;
免责声明: | |
1、 | 资源售价只是赞助,不代表代码或者素材本身价格。收取费用仅维持本站的日常运营所需。 |
2、 | 本站资源来自用户上传,仅供用户学习使用,不得用于商业或者非法用途,违反国家法律一切后果用户自负。用于商业用途,请购买正版授权合法使用。 |
3、 | 本站资源不保证其完整性和安全性,下载后自行检测安全,在使用过程中出现的任何问题均与本站无关,本站不承担任何技术及版权问题,不对任何资源负法律责任。 |
4、 | 如有损害你的权益,请联系275551777@qq.com及时删除。 |