mysql2013年8月怎么打出来_2020年8月31日,上周完成了一个查询接口来检查mysql的数据,速度很慢,20200831,从,MySQL,中查,贼...
2020-08-31 上周完成一个查询接口,从MySQL中查数据,速度贼慢,
原因是数据5000万+,所以真正接触优化的机会来了,所以决定好好研究一下,做一个记录。
事情是这样的,mysql表中只有两个字段,企业名称,企业统一信用代码。
目标:实现百度搜索的功能,输入关键词,就出来相关词的下拉列表。
首先第一步就是要在mysql建表,并把数据写入,写入的方法使用的是kettle中的文本文件输入,表输出,实现效果是48小时2000万条。太慢了。导完数据也不知能不能实现快速查询。
下一步,
一是尝试其他写入数据的方法。
二是,安装es,尝试es查询。
三是,了解mysql的写入优化。
四是,实现百度搜索的功能。
#该文件主要实现将txt文件传入mysql数据库
import pymysql
import re
import time,datetime
#变量初始化
# connect MySQL
con = pymysql.connect(
host= "xxxxxx",
user="root" ,
passwd="xxxxxxx" ,
db= "leeno",
port=3306 ,
charset='utf8')
def insert(con,uniscid,entname):
#数据库游标!
cue = con.cursor()
try:
cue.execute(
"insert into lihua (uniscid,entname) values(%s,%s)",
[uniscid,entname])
#执行sql语句
# print("insert success") # 测试语句
except Exception as e:
print('Insert error:', e)
con.rollback()
#报错反馈
else:
con.commit()
#真正的执行语句
def read():
count=0
filename="C:\\Users\\admin\\Desktop\\456\\456.txt"
#按行读取txt文本文档
with open(filename, 'r',encoding='utf-8') as f:
datas = f.readlines()
while True:
if datas is not None:
for data in datas:
txt=re.split(r',',data)
uniscid=txt[0]
entname=txt[1]
insert(con, uniscid, entname)
count=count+1
print(count)
if data is None:break
if datas is None:break
//正式执行过程
start = datetime.datetime.now()
print("开始时间:" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
read()
#执行read函数
con.close()
#关闭连接
end = datetime.datetime.now()
print("结束时间:" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
print("总用时:" + str(end - start))
注意上面的代码,是循环执行insert语句,一条条插入的。刚开始插入速度200条/秒。
怎么优化呢?
经过下面的过程
1.换服务器了,32G+4核
2.Load data local infile 卡住不显示导入数据速度
3.Kettle 写入新服务器的sql,每秒速度1500条,还是太慢
4.考虑 将 数据 转成 insert into 的sql文件,5000万条数据转成50个sql文件,利用souce sql文件 的方式,看下速度如何
其他写入数据的方法:
import pymysql
from impala.dbapi import connect
import time,datetime
import pandas as pd
start = datetime.datetime.now()
print("开始时间:" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
data = []
filename1 = "C:\\Users\\admin\\Desktop\\123\\uniscidename_20200828_091852.txt"
i=0
with open(filename1, 'r',encoding='utf-8') as file_to_read:
while True:
lines = file_to_read.readline()
if not lines:
break
pass
uniscid=lines.split(",")[0].strip("\n")
entname = lines.split(",")[1].strip("\n")
str1 = "insert into TAX_ENTNAME_UNISCID (uniscid,entname) values"+"('" + uniscid + "','"+entname+"');"
# print(str1)
data.append(str1)
i=i+1
if (i%1000000==0 and lines is not None ):
df = pd.DataFrame(data)
df.to_csv("C:\\Users\\admin\\Desktop\\123\\"+time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))+".sql",sep='\n',header=False,index=False)
i = 0
data=[]
if(i<1000000 and lines is None):
df = pd.DataFrame(data)
df.to_csv("C:\\Users\\admin\\Desktop\\123\\" + time.strftime("%Y%m%d%H%M%S",time.localtime(time.time())) +"LAST"+ ".sql",sep='\n',header=False,index=False)
break;
end = datetime.datetime.now()
print("结束时间:" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
print("总用时:" + str(end - start))
5000万条数据,每个企业名称查询时间 约 1分钟。
所以,打算换成elaticsearch,可是我是个小白。
下一步要实现的是
安装配置es
安装配置 kibana
安装配置logstash
利用logstash 全量或者增量导入mysql中的数据库
将数据展示在kibana
测试查询速度
mysql2013年8月怎么打出来_2020年8月31日,上周完成了一个查询接口来检查mysql的数据,速度很慢,20200831,从,MySQL,中查,贼...相关推荐
- mysql 按月和年累加_2020年5月播出的电视剧汇总,按时间先后顺序排列
小伙伴们好,五月份来了,这个月的电视剧怎么说呢,柳林觉得可以用马蜂窝来形容了,这个月一共有多少部剧,柳林数了一下,差不多有四十部电视剧,就问你看不看得过来.本文是柳林后的原创文章,小伙伴们收藏好,这个 ...
- 2020下半年新机最新消息_2020年12月新机发布时间表_2020年12月手机发布会有哪些...
现在是2020年的11月份,距离2020年的过去还有一个多月,在这段时间中还会有很多新机发布,其中2020年12月有哪些新机将会发布呢,小编在这里列了一个时间表,大家不妨看一看. 2020年12月新机 ...
- a股历史30年的大盘价_2020年7月30日大盘走势分析
2020年7月30日大盘走势分析 严正声明:分析下面小程序炒股广告与本公众号zyh218642无关,纯属第三方平台自然生成,不要点开,谨防上当受骗. 7月份大盘走势分析 7月份大盘的多空压力与支撑位置 ...
- G少爷上证技术分析 8月31日
Gieno G少爷上证技术分析 8月31日 上周五仍然有一个向下(↓)の趋势,可以看到Slow Stochastic cross和MACD间の相互支撑~ 从整体上看,市场应该会在10月份左右试探38 ...
- ios王者荣耀服务器维护31号,王者荣耀iOS版3月31日无法更新怎么办 王者荣耀iOS玄雍危机版本无法更新解决方法...
王者荣耀iOS版3月31日无法更新怎么办?3月31日王者荣耀玄雍危机版本更新,但不少iOS版的玩家发现自己无法更新,不知道是怎么回事,下面小编为大家带来了王者荣耀iOS玄雍危机版本无法更新解决方法,要 ...
- s19王者荣耀苹果服务器维护,王者荣耀3月31日更新失败解决方法 S19IOS更新失败怎么办...
王者荣耀在3月31日上线了新的S19赛季内容,相信不少玩家都很期待这次的更新吧.这次的游戏作为一个比较大的版本更新,有一些问题也在所难免,最近就有很多玩家表示王者荣耀ios版更新失败了.遇到这样的情况 ...
- 用户月活跃度在哪里可以查_2020年12月计算机等级考试报名时间,另外11月6号可以查9月考试成绩...
点击4S工作室,轻松关注!! 考试时间 2020年12月5日-12月6日 最后一次考Office 2010 2020年12月NCRE并非全国统一考试,只有这几个省开考: 天津.上海.福建.湖南.重庆. ...
- resnet50能用cpu跑吗_2020年12月1日更新。性价比最高入门游戏CPU--intel 10100F装机配置推荐。...
牙膏厂终于发布了入门级性价比最高的十代CPU,inte i3 10100F.10100F采用LGA1200芯片接口,四核八线程,主频3.6GHz,睿频可以到4.3Ghz.TDP功耗65w,支持双通道D ...
- access 动态 top 条件_2020年10月抖音直播营销报告_行业动态
这个月,我们不仅享受了中秋.国庆双节的8天超长假期,还迎来了双十一电商购物节的预热洗礼,那么10月期间抖音直播有什么需要留意的营销新趋势吗? CC数据基于2020年10月1日-10月27日追踪到的数据 ...
最新文章
- Ubuntu 安装VMware Tools 报Read-only file system问题解决
- CSS3学习系列之颜色
- nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
- Nginx 配置 SSL 及 HTTPS 协议通信过程
- 倒计时按钮_办公小技巧:轻松玩转PPT秒针倒计时
- gitea无法连接mysql_Git push ERROR: Repository not found fatal:无法连接远程数据库
- mysql的jar包文件在哪找_数据库的jar在哪找
- lighty2.0沙箱版本的协议和配置分析采用ragel 成功案例
- 安卓(Android)的原生系统真的那么好用吗
- 大数据和 AI 驱动创新实例分享
- 微信小程序微商城(五):动态API实现商品详情页(下)
- 戴尔服务器虚拟 介质,使用Dell R710 IDRAC挂载虚拟介质
- 【绝对管用】彻底的卸载干净oracle 11g
- 装机软件测试工资,实际性能测试及总结_DIY攒机装机不求人-中关村在线
- 各大搜索引擎收录地址
- C语言/C++常见习题问答集锦之哆啦A梦
- ath9k网卡驱动相关
- SpringCloud重试机制配置
- 动能方案|智能门锁超低功耗读卡方案
- 如何用Unity制作“最高得分”
热门文章
- Python 之父为什么嫌弃 lambda 匿名函数?
- 2018 百越杯 pwn(Boring Game Write up)
- Netty Channel源码分析
- python接口自动化5-Json数据处理
- Linux命令(30):tar命令-归档工具
- 为分支机构和移动人员实施路由的导图
- 画布之轮播图片HTML5,Axure原型设计之轮播图
- id文本框适应文字_国家宣布!快递要大降价?个人ID将取代邮政编码
- android自定义文件选择,关于安卓自定义本地文件选择库的实现
- python判断密码是否正确_第一个python程序-判断登陆用户名和密码是否正确