小编Doc*_*Dbg的帖子

MySQL过多的内存使用量

我安装了MySQL,它分配的内存比我预期的多得多.我想了解修复根本原因的地方.

要估计RAM使用率,我使用以下公式:

key_buffer_size + query_cache_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + Max_used_connections * (read_buffer_size + read_rnd_buffer_size + sort_buffer_size+ join_buffer_size+ binlog_cache_size + thread_stack + tmp_table_size)
Run Code Online (Sandbox Code Playgroud)

该公式产生约5.3 GB的估计分配.相反,MySQL使用的RAM继续增长,经过几天的活动后,它远远超过9 GB(大量写入交换).

我忘记了什么?我如何理解谁在吃剩余的RAM?

还有一些信息.

我在RHEL6.3 64位上运行MySQL CE 5.6.17.我的服务器有6 GB RAM和8GB交换空间.我一直有大约150个与MySQL有关的活动连接,但是我将max_connections保持在更高的值以适应峰值,并预见到这台机器上会有更多的流量.我只使用InnoDB.我的应用程序使用池连接到池.生成器打开连接并在完成后将它们释放到池中.我已经测量过我总是有几个并行请求,并且池化可以加快一点连接创建速度(因此查询速度更快).池(DBCP)自动调整合理数量的活动连接,通常约为100-150.我已经尝试过了:

  • 杀死连接不会释放RAM
  • FLUSH TABLES不释放RAM

按照我的配置:

---- my.cnf -----
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 64M
max_allowed_packet = 1M
table_open_cache = 256
key_buffer_size = 128M
sort_buffer_size = 524288
read_buffer_size = 131072
read_rnd_buffer_size = 524288 …
Run Code Online (Sandbox Code Playgroud)

mysql memory innodb

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

MySQL中的触发器和表锁

场景:我有一些触发器可以跟踪一个表的记录数以及其他有用信息.这些触发器在此表上添加/删除/更新时触发,并负责在另一个补充表中写入此信息.

现在,这些触发器将在多线程环境中运行,我可能可以同时访问表.我希望我可以做这样的事情,但它被禁止(错误:错误代码:1314.存储过程中不允许LOCK):

DELIMITER $$
DROP TRIGGER IF EXISTS del_alarmCount$$
CREATE TRIGGER del_alarmCount AFTER DELETE ON Alarm
FOR EACH ROW
BEGIN
SET autocommit=0;
LOCK TABLES AlarmCount WRITE, AlarmMembership READ;
  UPDATE AlarmCount SET num = num - 1 
  WHERE RuleId = OLD.RuleId AND
      MemberId = 0 AND
      IsResolved = OLD.IsResolved;

  UPDATE AlarmCount SET num = num - 1 
  WHERE RuleId = OLD.RuleId AND
      IsResolved = OLD.IsResolved AND
      MemberId IN (SELECT MemberId FROM AlarmMembership WHERE AlarmId=OLD.Id);
COMMIT;
UNLOCK TABLES;
END $$ …
Run Code Online (Sandbox Code Playgroud)

mysql concurrency triggers locking

13
推荐指数
1
解决办法
6470
查看次数

JPA OneToMany映射异常:字段XXX无法声明它由另一个字段映射

在我的项目中,我有下面报告的类,具有双向关系映射.当我尝试通过JPA读取DataProviderImpl类型的对象时,我得到以下异常:

org.apache.openjpa.persistence.ArgumentException:字段"persistence.entity.DataProviderImpl.methods"无法声明它由另一个字段映射.其映射策略(org.apache.openjpa.jdbc.meta.strats.HandlerCollectionTableFieldStrategy)不支持另一个字段的映射.

我已经检查了其他问题,但似乎没有什么适用于我的情况.任何提示?先感谢您!

<persistence
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">

<persistence-unit name="DataProvider" transaction-type="JTA"> <!-- transaction-type="RESOURCE_LOCAL"  info at:  http://tomee.apache.org/jpa-concepts.html -->
    <jta-data-source>
        osgi:service/jdbc/mysqlPoolXAds
    </jta-data-source>
    <non-jta-data-source>
        osgi:service/jdbc/mysqlds
    </non-jta-data-source>      
    <class>persistence.entity.DataProviderImpl</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
    </properties>
</persistence-unit>
<persistence-unit name="RestMethod" transaction-type="JTA"> <!-- transaction-type="RESOURCE_LOCAL"  info at:    http://tomee.apache.org/jpa-concepts.html -->
    <jta-data-source>
        osgi:service/jdbc/mysqlPoolXAds
    </jta-data-source>
    <non-jta-data-source>
        osgi:service/jdbc/mysqlds
    </non-jta-data-source>      
    <class>persistence.entity.RestMethodImpl</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
    </properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

@Entity(name = "DataProvider")
public class DataProviderImpl implements DataProvider {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;
    // ...

    @OneToMany(fetch = FetchType.LAZY, mappedBy="dataProvider")
    private List<RestMethod> methods;


    public DataProviderImpl() { …
Run Code Online (Sandbox Code Playgroud)

java jpa

6
推荐指数
1
解决办法
2932
查看次数

标签 统计

mysql ×2

concurrency ×1

innodb ×1

java ×1

jpa ×1

locking ×1

memory ×1

triggers ×1