我需要从CSV文件中将大约180万行插入到MySQL数据库中.(只有一张桌子)
目前使用Java来解析文件并插入每一行.
你可以想象这需要花费几个小时才能运行.(10)
我之所以没有将它直接从文件传输到数据库中,是因为数据必须在将数据添加到数据库之前进行操作.
这个过程需要由那里的IT经理来运行.所以我把它设置为一个很好的批处理文件,让它们在将新的csv文件放到正确的位置后运行.所以,我需要通过将文件放到某个位置并运行批处理文件来很好地完成这项工作.(Windows环境)
我的问题是,插入这么多数据的最快方法是什么?大型插入,来自临时解析文件或一次插入一次?可能还有其他想法吗?
第二个问题是,如何优化我的MySQL安装以允许非常快速的插入.(还有一点需要大量选择所有数据)
注意:该表最终将被删除,整个过程将在以后再次运行.
一些澄清:目前使用... opencsv.CSVReader解析文件,然后在每一行上插入.我正在总结一些专栏而忽略其他专栏.
更多说明:本地DB MyISAM表
我有一个ASP.NET站点,必须使用表单身份验证而不是Windows身份验证来访问ActiveDirectoryMembershipProvider.该站点必须使用表单,因为它们需要设计的输入表单,而不是Windows身份验证使用的浏览器身份验证弹出窗口.
该站点需要模拟通过Active Directory登录的用户访问用户特定文件.
但是,WindowsIdentity.GetCurrent()由于是不一样的HttpContext.Current.User.Identity,虽然我的web.config包括:
<authentication mode="Forms">
<forms loginUrl="login.aspx" timeout="480"/>
</authentication>
<identity impersonate="true" />
Run Code Online (Sandbox Code Playgroud)
我无法使用LoginUser(),WindowsIdentity.Impersonate()因为我需要冒充AD用户来获取他们的特定权限,而我不知道用户的密码,因为Forms负责登录.
是否可以从login.aspx.cs获取System.Web.UI.WebControls.Login.Password,然后将LoginUser()令牌保存在会话变量中以供WindowsIdentity.Impersonate()日后使用?或者可能采用更安全的方法冒充正确的方法?
我很困惑为什么表单身份验证不能自动 <identity impersonate="true" />
我已阅读此http://msdn.microsoft.com/en-us/library/ms998351.aspx但它使用Windows身份验证.
asp.net impersonation forms-authentication active-directory windows-authentication
Microsoft .NET Framework客户端配置文件脱机安装程序 - 255.6 MB.不应该是27MB左右吗?
这里包中的最大文件列表(大小,以字节为单位).
所以可能是正确的问题是为什么全标记的.NET 3.5包在这里?我不知道.
当用户在Java中键入时,是否有一种从控制台读取单个字符的简单方法?可能吗?我尝试过这些方法但他们都在等待用户按下回车键:
char tmp = (char) System.in.read();
char tmp = (char) new InputStreamReader(System.in).read ();
char tmp = (char) System.console().reader().read(); // Java 6
Run Code Online (Sandbox Code Playgroud)
我开始认为System.in在按下enter之前不知道用户输入.
当用户在Google Map周围平移时,会更新当前可见标记的列表.此列表最多包含1000个项目,当一次显示或隐藏数百个li时,它会减慢速度.它不到半秒钟,但它变得很烦人.
数组(newLiList)包含现在应该可见的项目.另一个数组(currentLiList)具有先前可见的项目.两个数组都包含li的id作为索引.
for (var i in newLiList) {
if (currentLiList[i] != true) {
$("ul#theList li#"+i).show();
}
}
for (var i in currentLiList) {
if (newLiList[i] != true) {
$("ul#theList li#"+i).hide();
}
}
Run Code Online (Sandbox Code Playgroud)
有更快的方法吗?
如果您正在使用Firebug(Firefox)并在控制台命令行中键入javascript并按Enter键则执行.但是,有充分的理由,当您将命令行展开到右侧的多行文本区域时,按Enter键不会执行代码.相反,您必须单击此窗口左下角的"运行".
是否有热键/快捷方式来运行命令窗口的内容?(即没有鼠标点击.)
我在WPF中使用VSM(Visual State Manager,来自WPF工具包),我正在尝试查找状态列表.
基本上,我理解存在某些"神奇"状态 - 就像当控件被鼠标悬停时自动应用MouseOver状态,或者......聚焦时应用的聚焦状态.
这些地方有这样的清单吗?我确定有,我找不到它.
如何更改ActiveRecord ID的(默认)类型?int不够长,我宁愿长.令我感到惊讶的是,没有:迁移很久 - 是否只使用一些小数?
我认为MvcApplication是一个全球单身人士.我想获得MvcApplication控制器中的实例.然后我将以下代码放在控制器中:
MvcApplication app = HttpContext.Current.Application as MvcApplication;
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误:
错误2'System.Web.HttpContextBase'不包含'Current'的定义,并且没有扩展方法'Current'可以找到接受类型'System.Web.HttpContextBase'的第一个参数(你是否缺少using指令或者装配参考?)
为什么?如何MvcApplication在控制器中访问?
在C#中使用XSLT或Linq to XML进行HTML解析有什么好处?这是假设html已被清理,因此它是有效的xhtml.这些值最终会进入ac#对象进行验证和处理.
如果这些内容有效并且还有其他事项需要考虑,请告诉我.
XSLT的优点:
XSLT缺点:
Linq to XML的优点:
Linq to XML缺点:
编辑:我应该澄清,我希望这些可以长期运行,网站可能会暂时更新其布局.这是我认为我会使用不需要编译的东西的更大原因之一.
console ×2
java ×2
javascript ×2
.net ×1
activerecord ×1
asp.net ×1
asp.net-mvc ×1
bigint ×1
c# ×1
firebug ×1
firefox ×1
google-maps ×1
hotkeys ×1
html-parsing ×1
input ×1
int ×1
jquery ×1
linq-to-xml ×1
long-integer ×1
mysql ×1
performance ×1
vsm ×1
wpf ×1
wpftoolkit ×1
xslt ×1