第一步:建立测试表,创建一个简单的表,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))BEGINDECLARE i INT DEFAULT 0;SET autocommit=0;REPEATSET i=i+1; INSERT INTO customerVALUES((START+i), CONCAT('tony',i),RAND()*90,'大数据量记录测试'); UNTIL i = max_numEND 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及时删除。 |