1、打开程序所在的磁盘,找到工具,文件夹选项。
2、在查看选项卡中找到使用简单文件共享,把前面的勾去掉。
3、找到程序的文件夹,右键单击选择属性。
4、单击安全选项卡,系统罗列出文件夹的可 *** 作用户及权限,需要添加一个当前计算机用户,单击,添加按钮。
5、在这里可以直接输入当前计算机用户名称,不确定则单击高级按钮。
6、单击立即查找,找到Users用户,单击确定。
7、添加上users用户,在权限列表里,选择上修改和写入,确定后设置完成。便获得了保存的权限。
可以考虑使用在线建索引的工具,或者中间表方式进行更改,下面就两种方法分别做一下说明。
一. pt-online-schema-change在线建索引
下载安装pt-toolkit工具包,里面包含此工具。
安装完成后使用命令在线加索引
pt-online-schema-change -h127.0.0.1 -P 3307 -uroot -p123 --charset=utf8 --alter='ADD INDEX `idxname` (`a`, `b`, `c`) USING BTREE' --execute D=dbname,t=tablename
上面命令主要做了以下工作:
基于原表表结构创建一个临时表
原表创建3个触发器,分别对应insert、update、delete *** 作
将原表数据拷贝到临时表,如期间有数据更新,通过第二步创建的触发器对临时表也进行更新,保证数据一致。
rename原表tablename为tablename_old;然后将临时表rename成tablename
完成在线加索引 *** 作。
注意事项:如表中有外键关联,则命令必须加上--alter-foreign-keys-method参数,否则命令不能执行;执行命令前,原表不能有触发器。
比较熟悉的到这里应该可以看出来了,此工具使用的其实是中间表的方式,如果不想装工具,或者没有安装工具的条件,那么也可以用手动建中间表方式实现软件功能。
二. 中间表方式
假设现在要对表tb1增加索引:
创建tb1的中间表tb1_new
create table tb1_new like tb1
将原表数据导入中间表
insert into tb1_new select * from tb1
注意,这里如果表非常大的话,如问题里提到的上亿数据,会非常耗时,很消耗服务器资源,如果服务器配置不高的话,有可能导致系统hang住,这时可考虑使用多次执行分段导入的方式缓解压力:
insert into tb1_new select * from tb1 where id between 0 and 100000
insert into tb1_new select * from tb1 where id between 100001 and 200000
.
.
insert into tb1_new select * from tb1 where id between 99900001 and 100000000
rename原表和中间表
rename tb1 tb1_oldrename tb1_new tb1
总结:以上无论是使用在线更改工具还是中间表方式,在修改上亿级大表时都有可能对服务器造成较大压力,导致系统运行缓慢甚至hang住的情况,所以要尽量放在业务非繁忙期窗口进行分段式 *** 作。
Wind数据库中。研究区间只要有一年的状态是ST、ST或PT就把股票所有样本都剔除,原始数据来自Wind数据库,如果是股票价格或收益率数据,CSMAR通常会以多个excel的格式存取。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)