- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在做一个项目,其中一些客户有互联网连接问题。
当互联网连接不起作用时,我们将信息存储在位于客户端 PC 的数据库中。当我们再次建立连接时,我们将本地数据库与中央数据库同步。
为避免两个数据库之间的记录 ID 发生冲突,我们将使用 UUID [char(36)] 而不是自动增量。
数据库是带有InnoDB引擎的Mysql。
我的问题是这会对选择、连接等的性能产生影响吗?我们应该使用 varbinary(16) 而不是 char(36) 来提高性能吗?
注意:我们已经有一个包含 4 个 Go 数据的现有数据库我们也欢迎其他建议来解决此离线/在线问题。
谢谢
最佳答案
由于您没有说明正在使用哪个数据库引擎(MyISAM 或 InnoDB),因此很难说出性能影响的大小。
但是,简而言之 - 是的,较大的数据集会影响性能。这样做的原因是主键索引需要 36 个字节,而整数需要 4 个字节(如果是 bigint,则为 8 个字节)。
我会提示您如何避免冲突:
首先是在数据库上有不同的自动增量偏移量。如果您有 2 个数据库,则自动增量在一个数据库上为奇数,在另一个数据库上为偶数。
其次是要有复合主键。如果您将主键定义为 PRIMARY KEY(id, server_id)
,那么在将数据复制到中央数据库时不会发生任何冲突。你也会知道它来自哪里。缺点是您需要为您执行的每个查询提供 server_id。
关于mysql - 离线同步(Performance UUID为主键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466459/
我在右侧有一个主 div 和一个侧边栏(用于导航/过滤器)。主 div 用于显示日志文件,在任何情况下都不应写入右侧栏。 问题:当出现没有空格的很长的消息(例如很长的文件路径)时,它将写入我的右侧栏。
我想根据内部从 TableView 的高度动态设置主 TableView 的行高。实现这一目标的最佳方法是什么? 最佳答案 尝试使用 UITableViewAutomaticDimension 动态设
我正在尝试为 GridLayout 调用 findviewbyid,但无论我放置在哪里,它都会返回 null。在设置 contentView 并膨胀 ViewStub 后,我将其称为 onCreate
对于一个巨大的 myisam 表(超过 1B 行),我有 2 个唯一变量,其中一个有 18 个数字,另一个有 10 个拉丁字符。 我应该选择哪一个作为主键? 如果是数字;小数还是大整数? 它们都不能帮
我有一个包含 19 行的用户表(第一行是 admin)。我需要添加更多内容,因此我有另一个数据库,其中的表有超过 1,400,000 个用户。 我的表有一个“user_id”作为主键,INT(11),
我是一名优秀的程序员,十分优秀!