小编And*_*rew的帖子

优化mySql以获得更快的alter table add列

我有一个表有170,002,225行,约35列和两个索引.我想添加一个列.alter table命令大约需要10个小时.在那段时间内,处理器似乎都不忙,也没有过多的IO等待.这是一款带有大量内存的4路高性能盒子.

这是我能做的最好的吗?有什么我可以看一下在调整db时优化add列吗?

mysql performance alter

50
推荐指数
3
解决办法
3万
查看次数

gradle在Intellij中不起作用 - 与JAVA_HOME有关

  • 我可以从命令行运行gradle来查看它的版本.
  • 我可以在IntelliJ(版本10.0或版本10.2)中运行,编译和调试grails应用程序
  • 我安装了IntelliJ Gradle插件.

每当我尝试使用Intellij中的gradle做任何事情时,我都会收到如下错误:

Executing command: "tasks"
Failed to connect to gradle process for command 'tasks'

ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files (x86)\JetBrains\IntelliJ IDEA 10.0\jre

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
Run Code Online (Sandbox Code Playgroud)

但是在我的环境中,我已经JAVA_HOME在不同的目录中设置了正确的JDK.此外,当我查看IntelliJ项目时,它还会在正确的JDK位置显示JDK.我找不到任何试图将JDK指向Intellij JRE位置的东西.

有什么想法吗?

intellij-idea gradle

27
推荐指数
2
解决办法
3万
查看次数

如何在Grails控制器中获取客户端IP地址?

我在Ruby中有这样的代码:

@clientipaddress = request.env["HTTP_CLIENT_IP"]
if (@clientipaddress == nil)
  @clientipaddress = request.env["HTTP_X_FORWARDED_FOR"]
end
if (@clientipaddress == nil)
  @clientipaddress = request.env["REMOTE_ADDR"]
end
if (@clientipaddress != nil)
  comma = @clientipaddress.index(",")
  if (comma != nil && comma >= 0)
    @clientipaddress = @clientipaddress[0, comma]
  end
end
Run Code Online (Sandbox Code Playgroud)

它处理了知识产权可能出现的所有可能方式.例如,在我的本地开发机器上,没有代理.但在QA和Production中,代理存在,有时它们提供多个地址.

我不需要知道Groovy语法,只是哪种方法让我相当于我要求上面的IP的三种不同方式.

grails

15
推荐指数
1
解决办法
2万
查看次数

在grails中是否有标准的方法来管理属性文件中的国际字符串中的复数?

使用国际插件,是否有一种"正确"的方式来动态复数单词,或选择属性的复数版本?

grails internationalization

14
推荐指数
1
解决办法
1518
查看次数

在Grails中如何在域类静态方法中访问hibernate会话?

我在网上看过各种各样的文章,但在这一点上它们似乎相当分散.在我的配置和我的方法中,我需要做什么才能获得hibernate会话.我正在尝试为存储过程进行一些直接的SQL调用.我有一个很大的代码库,我从Ruby移植了很多静态方法和存储过程调用.如果我需要使用sessionFactory,那么如何才能访问它?

grails hibernate sessionfactory

9
推荐指数
3
解决办法
2万
查看次数

我的Grails App Server不断重复启动

我对我的应用程序进行了各种小的更改,并且在某些时候,grails应用程序服务器决定它需要重新启动一遍又一遍.

其他人都看到了这种疯狂的行为.我无法真正上传我的整个应用程序作为示例.我不知道我做了什么.我没有进行任何配置更改或插件更改.

我正在使用grails 1.2.

- 当我写这封电子邮件时,我又尝试了一下,我的行为略有不同.

它将重新启动应用程序,并显示它正在编译1源文件并继续重新编译一条消息.

grails

9
推荐指数
1
解决办法
1407
查看次数

当需要向具有数百万行的表添加列时,Postgres比MySql更好吗?

我们遇到Mysql问题.当我四处搜寻时,我看到很多人遇到同样的问题.

我加入了一个产品,其中数据库有一些表,行数多达1.5亿行.我们的问题的一个例子是这些表中的一个具有超过30列,并且其中大约一半不再使用.当试图删除列或重命名列时,mysql想要复制整个表并重命名.有了这么多的数据,这需要花费很多时间来完成,而且网站几乎一直都处于脱机状态.这只是改进模式的几次大型迁移中的第一次.这些并非常规.我继承了很多清理工作.

我试着去查看人们是否与Postgres有同样的问题,我发现几乎没有什么可以比较这个问题.这是因为Postgres在这方面要好得多,或者只是少用人使用postgres?

mysql postgresql

8
推荐指数
3
解决办法
2267
查看次数

如果我在grails中使用groovy sql类,它是否使用grails连接池?

从以下sql文档中的示例.如果我使用这些方法之一在grails服务类的中间创建一个sql实例,它会使用grails连接池吗?它会参与任何交易功能吗?我需要自己关闭连接吗?或者它会自动返回池中吗?

def db = [url:'jdbc:hsqldb:mem:testDB', user:'sa', password:'', driver:'org.hsqldb.jdbcDriver']
  def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)
Run Code Online (Sandbox Code Playgroud)

或者如果您有现有连接(可能来自连接池)或数据源使用其中一个构造函数:

  def sql = new Sql(datasource)
Run Code Online (Sandbox Code Playgroud)

现在你可以调用sql,例如创建一个表:

 sql.execute '''
        create table PROJECT (
          id integer not null,
          name varchar(50),
          url varchar(100),
        )
 '''
Run Code Online (Sandbox Code Playgroud)

sql grails groovy

7
推荐指数
1
解决办法
3248
查看次数

如何以编程方式确定ehcache是​​否正在运行?

我有一个配置为使用JPA和Hibernate的大型Java应用程序。据推测,它还配置为对实体和查询缓存都使用ehcaching。但是,我已打开sql日志记录,并且没有实体被缓存。所有实体查询都在每个请求上发生。

我如何在运行时确定它是否甚至正在运行ehcache,以及它是否认为实体应该可缓存?

我没有写这个应用程序,所以在这里有些卡住了。

它使用声明进行类的缓存。

它正确地使用了Hibernate的所有其他声明来执行读/写操作。

ehcache

5
推荐指数
2
解决办法
4268
查看次数

尽管使用了Lazy Fetch,Hibernate JPA OneToOne仍在查询

我遇到的问题是Hibernate在懒惰的onetoone关系的另一边查询一个类.

对top_players的查询(取决于缓存设置)通过映射表进行查询以获取QHPlayer表的ID.

在执行主查询之后,它查询QHPlayer表的每个实例.

但是,它在两种不同的场景中做错了.

如果我打开了缓存,它将查询QHPlayer的实例,然后它将查询到inventory_item表.如果我关闭了缓存,它将通过加入inventory_item向QHPlayer进行查询.

问题是无论我怎么做,它都坚持查询inventory_item表.这是我不想要的.我目前不需要inventory_item中的数据.

我假设QHPlayer和PlayerInventoryItem之间的onetoone声明有问题.

有什么想法吗?

相关代码如下:

    Query query = entityManager.createQuery( "SELECT c FROM top_players c WHERE c.teamId=:teamId ORDER BY c.level DESC, c.adjustedFantasyPointsTotal DESC, c.id ASC" );
    query.setParameter( "teamId", teamId );
    List<TopPlayers> results = query.getResultList();



    @XmlAccessorType( XmlAccessType.PROPERTY)
@Entity( name="player_template")
@Table( name="player_template" )
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class QhPlayer implements Serializable {

    @Id
    public Integer getPlayerTemplateId() {
        return playerTemplateId;
    }

    @OneToOne( mappedBy ="playerTemplate", fetch = FetchType.LAZY)
    @XmlTransient
    public PlayerInventoryItem getInventoryItem() {
        return inventoryItem;
    }

}


@Entity( name = "qhplayer_inventory_item" …
Run Code Online (Sandbox Code Playgroud)

hibernate

5
推荐指数
1
解决办法
5245
查看次数