我有一个表遍布两个运行MySql 4的服务器.我需要将这些表合并到一个服务器中以用于我们的测试环境.
这些表每个都有数百万条记录,它们在两台服务器上的原因是因为它们有多大.任何表格的改变和分页都会给我们带来太大的性能损失.
因为它们处于生产环境中,所以我不可能在现有服务器上以任何方式更改它们.
问题是主键是一个唯一的自动递增字段,因此存在交叉点.
我一直在试图弄清楚如何使用mysqldump命令来忽略某些字段,但是--disable-keys只是改变了表,而不是完全摆脱键.
在这一点上,我看起来需要修改数据库结构,以便将主键的校验和或哈希用作实际应该唯一的两个唯一字段的组合...我真的不想做这个.
救命!
我正在考虑从MySQL切换到PostgreSQL.
使用PostgreSQL有什么提示,技巧和陷阱?
MySQLer应该注意什么?
另请参阅:PostgreSQL与MySQL有何不同?
另请参见:从MySQL迁移到PostgreSQL
注意 - 我不认为这是重复的.特别是答案的类型非常不同,这里的响应有更多的实现细节,这正是我所寻求的
有时,我必须为项目重新导入数据,因此在MySQL表中读取大约360万行(目前是InnoDB,但实际上并不仅限于此引擎)."加载数据infile ......"已被证明是最快的解决方案,但它有一个权衡: - 当没有键导入时,导入本身大约需要45秒,但密钥创建需要很长时间(已经运行了20分钟...... ). - 使用表上的键进行导入会导致导入速度变慢
表中有3个字段的键,引用数字字段.有没有办法加速这个?
另一个问题是:当我终止启动慢查询的进程时,它继续在数据库上运行.有没有办法在不重启mysqld的情况下终止查询?
非常感谢DBa
我需要一种方法来轻松导出,然后将MySQL表中的数据从远程服务器导入我的家庭服务器.我没有直接访问服务器,也没有安装phpMyAdmin等实用程序.但是,我确实能够将PHP脚本放在服务器上.
我如何获得数据?
我问这个问题纯粹是为了记录下去的方式
我使用LOAD DATA INFILE命令遇到了一些麻烦,因为我想忽略已经在数据库中的行...如果我有一个包含数据的表,如下所示,
id |name |age
--------------------
1 |aaaa |22
2 |bbbb |21
3 |bbaa |20
4 |abbb |22
5 |aacc |22
Run Code Online (Sandbox Code Playgroud)
其中id是自动增量值.我所拥有的csv文件包含如下数据,
"cccc","14"
"ssee","33"
"dddd","22"
"aaaa","22"
"abbb","22"
"dhgg","34"
"aacc","22"
Run Code Online (Sandbox Code Playgroud)
我想忽略行,
"aaaa","22"
"abbb","22"
"aacc","22"
Run Code Online (Sandbox Code Playgroud)
并将其余内容上传到表格中.我已经将所有内容上传到表中的查询如下,
LOAD DATA INFILE 'member.csv'
INTO TABLE tbl_member
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
(name, age);
Run Code Online (Sandbox Code Playgroud)
请帮助我完成这项任务..将非常感谢..我试过很多链接,但没有帮助:(
我创建了一个数据库和一个表.我还创建了我需要的所有字段.我创建了46个字段,其中一个是我的行ID.CSV不包含ID字段,也不包含列的标题.我是所有这一切的新手,但一直试图解决这个问题.我不是在这里懒得问答案,而是寻找方向.
我正在试图弄清楚如何导入CSV但让它从第2个字段开始导入数据,因为我希望auto_increment将填充ID字段,这是我创建的第一个字段.
我没试过这些指示.有人能提供一些见解吗?
,"\auto,像column1,column2,column3编辑:
CSV文件为32.4kb
我的CSV的第一行是:
Test Advertiser,23906032166,119938,287898,,585639051,287898 - Engager - 300x250,88793551,Running,295046551,301624551,2/1/2010,8/2/2010,Active,,Guaranteed,Publisher test,Maintainer test,example-site.com,,All,All,,Interest: Dental; custom geo zones: City,300x250,-,CPM,$37.49 ,"4,415","3,246",3,0,$165.52 ,$121.69 ,"2,895",805,0,0,$30.18 ,$37.49 ,0,$0.00 ,IMPRESSIONBASED,NA,USD
Run Code Online (Sandbox Code Playgroud) 我需要根据某些条件更新表中的现有行和load data infile,这可能吗?
load data infile 'E:/xxx.csv' into table tld_tod @aaa, @xxx_date, @ccc fields terminated by ',' LINES TERMINATED BY '\r\n' set xxx = str_to_date(@xxx_date, '%d-%b-%y') where xxx is not null and aaa=@aaa
尝试将数据从平面文件数据库转储加载到新表时,我遇到了权限错误.我知道文件和我的表的架构是相同的,我尝试调整权限.我还应该尝试什么?
mysql> load data infile 'myfile.txt' into table mytable fields terminated by ',' enclosed by '"';
ERROR 1045 (28000): Access denied for user 'user'@'%'
grant all on mytable.* to 'user'@'%
Run Code Online (Sandbox Code Playgroud) 我正在使用MySQL的LOAD DATA LOCAL INFILE SQL语句将CSV文件中的数据加载到现有数据库表中.
这是一个示例SQL语句:
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(name, address, dateOfBirth)
Run Code Online (Sandbox Code Playgroud)
CSV中映射到dateOfBirth字段的第三列当前具有以下格式的日期:
14-Feb-10
Run Code Online (Sandbox Code Playgroud)
如何修改上面的SQL语句以将日期格式化为MySQL的日期格式,即2010-02-14?
我知道如何使用常规INSERT语法转换字符串日期:
STR_TO_DATE('14-Feb-10', '%d-%b-%y')
我正在尝试将文件加载到MySQL数据库,主键auto_incremented,如果我找到任何重复的行,我希望更新数据.但是,REPLACE关键字仅适用于主键,它是自动生成的,所以我卡住了.
如何能够拥有一个ID为auto_increments的表,同时能够使用LOAD DATA INFILE从文件中插入/更新数据?
这是表格
CREATE TABLE `oxygen_domain`.`TEST` (
`TEST_ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) NOT NULL,
`VALUE` varchar(255) DEFAULT NULL,
PRIMARY KEY (`TEST_ID`,`NAME`,`VALUE`)
)
Run Code Online (Sandbox Code Playgroud)
这是命令
LOAD DATA LOCAL INFILE 'C:/testData.txt'
REPLACE
INTO TABLE TEST
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(NAME, VALUE);
Run Code Online (Sandbox Code Playgroud)
这是样本数据
ignored name, ignored value
name1,value1
name2,value2
name3,value3
Run Code Online (Sandbox Code Playgroud)
用上述数据多次运行上述命令后所需的结束结果是
|TEST_ID |NAME |VALUE|
1, 'name1', 'value1'
2, 'name2', 'value2'
3, 'name3', 'value3'
Run Code Online (Sandbox Code Playgroud) load-data-infile ×10
mysql ×10
csv ×2
datetime ×1
export ×1
indexing ×1
migration ×1
mysqldump ×1
performance ×1
php ×1
postgresql ×1
replace ×1
sql ×1