记录一次大量数据库查询操作

来源:互联网 发布:王者荣耀用户数据分析 编辑:程序博客网 时间:2024/06/05 18:56

今天在公司帮产品经理处理几十个比较大的excel表格遇到了小小的波折,简单记录一下
平均一个excel就有一百多万条数据(48m左右),以下为操作步骤:

1、用navicat导入excel文件:少导入数据,有很多数据不进行导入

2、设置mysql表大小的限制参数,默认4m,这里我设置512m,仍然导入部分数据

3、excel文件转csv,成功全部导入

4、无脑写一个sql语句进行处理,好吧,很慢,慢出*

5、给字段b添加btree索引,速度可以承受了

a、b、c、d四个数据库字段,sql语句如下、

 SELECT * FROM sogou WHERE (d LIKE '%music%' OR (b LIKE '%歌%' OR b LIKE '%音乐%' OR b LIKE '%曲%')) AND b NOT IN (SELECT b FROM sogou WHERE b LIKE '%阿里巴巴%' OR b LIKE '%baidu%' OR b LIKE '%百度%' OR b LIKE '%彩铃%' OR b LIKE '%com%' OR b LIKE '%财务%' OR b LIKE '%财富%' OR b LIKE '%彩票%' OR b LIKE '%车%' OR b LIKE '%电信%' OR b LIKE '%电台%' OR b LIKE '%地址%' OR b LIKE '%大学%' OR b LIKE '%电脑%' OR b LIKE '%Google%' OR b LIKE '%谷歌%' OR b LIKE '%高考%' OR b LIKE '%格式%' OR b LIKE '%公司%' OR b LIKE '%肝%' OR b LIKE '%工商%' OR b LIKE '%胡歌%' OR b LIKE '%教育%' OR b LIKE '%建筑%' OR b LIKE '%ktv%' OR b LIKE '%论坛%' OR b LIKE '%mv%' OR b LIKE '%mtv%' OR b LIKE '%MP4%'   OR b LIKE '%MP5%' OR b LIKE '%power%' OR b LIKE '%pp%'  OR b LIKE '%腾讯%' OR b LIKE '%qq%' OR b LIKE '%器%' OR b LIKE '%全文%' OR b LIKE '%软件%' OR b LIKE '%sohu%' OR b LIKE '%搜狗%' OR b LIKE '%sougou%' OR b LIKE '%sogou%' OR b LIKE '%书%' OR b LIKE '%视频%' OR b LIKE '%淘宝%' OR b LIKE '%taobao%' OR b LIKE '%图%' OR b LIKE '%网%' OR b LIKE '%www%' OR b LIKE '%word%' OR b LIKE '%显卡%' OR b LIKE '%小学%' OR b LIKE '%学校%' OR b LIKE '%小说%' OR b LIKE '%院%' OR b LIKE '%移动%' OR b LIKE '%中学%' OR b LIKE '%在线观看%' OR b LIKE '%//%')  GROUP BY b

以下为以上sql的explains结果:

select_type table partions type possible_keys key key_len ref rows filtered Extra PRIMARY sogou index nor_b nor_b 1803 1023338 37.57 Using where DEPENDENT SUBQUERY sogou index_subquery nor_b nor_b 1803 func 12 100 Using where; Using index; Full scan on NULL key

只是简单记录一下,之后再谈一谈如何进一步优化和细节补充。

原创粉丝点击