- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发电子邮件支持系统。每个存储的电子邮件包含 from_email
、subject
、date
、一些标志和邮件的内容
。显然,邮件数量可能很大,我们的系统主要关注最近的邮件(例如,最近 14 天),而较旧的邮件被视为已存档。我们还想搜索、过滤某些标签等等。
对于电子邮件的 ListView ,我们不需要考虑 content
字段。我正在考虑两个选项,一个表中的所有数据,以及存储 LONGTEXT
电子邮件正文的单独表。
假设 SQL SELECT
字段不包含 content
字段,将它放在单独的表中是否更有效?显然,LONGTEXT
字段没有存储固定长度的行数据,但我想它可能是交错的,因此 ListView 必须获取的页面数更大。
我正在使用 MariaDB 5.5.25 和 InnoDB 引擎。
最佳答案
我在 MySQL 5.5 手册中找到了此信息,section 14.3.12.2. File Space Management
If [an InnoDB] row is less than half a page long, all of it is stored locally within the page. If it exceeds half a page, variable-length columns are chosen for external off-page storage until the row fits within half a page. For a column chosen for off-page storage, InnoDB stores the first 768 bytes locally in the row, and the rest externally into overflow pages. Each such column has its own list of overflow pages. The 768-byte prefix is accompanied by a 20-byte value that stores the true length of the column and points into the overflow list where the rest of the value is stored.
用更通俗的话说,如果你创建一个只有主键和长文本的表,如果长文本大于 8000 字节(半页),InnoDB 将拆分行。
我的建议是将长文本放在存储的电子邮件表行的末尾,因为 InnoDB 可能无论如何都会为长电子邮件拆分该行。
将所有固定长度的列放在行的开头,将可变长度的列放在行的末尾是一种很好的数据库做法。
关于mysql - longtext 列如何存储在磁盘上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17572059/
我有一个网站。本网站的用户拥有包含 Longtext 字段的配置文件。我进退两难。如果我合并用户和配置文件表,它会减慢我的查询速度吗?我对用户表有大量查询。这些查询针对 integer 数字,与 Lo
我有包含 LONGTEXT 的表格帖子。我的问题是我想检索特定帖子的部分内容(基本上是分页) 我使用以下查询: SELECT SUBSTRING(post_content,1000,1000) FRO
我被这个难住了,第一次需要一些帮助。 我有一个数据库字段,它是 mysql LONGTEXT,带有一个时间戳字符串,例如字符串“1448386279” 我需要将其放入适当的 MySql TIMESTA
我需要知道如何按照写入方式显示放入数据库长文本字段中的信息。 就像用户在下面这样写: My life is full of love I fly like wedding doves I blow p
我正在开发电子邮件支持系统。每个存储的电子邮件包含 from_email、subject、date、一些标志和邮件的内容。显然,邮件数量可能很大,我们的系统主要关注最近的邮件(例如,最近 14 天),
我有一个从 SQL Server 到我的 mySQL 数据库的链接服务器(使用 MySQL ODBC Driver 5.3 的 Windows Server)。我有一个独特的情况,如果我在 OPEN
我需要一些帮助。示例: $table->text('description'); 但是,如果我希望我的数据类型是“LONGTEXT”,该如何编码/编写? 我找不到关于此 @ http://larave
好吧,就这么简短而甜蜜。我的数据库中有一个字段是 LONGTEXT。该字段通常每个字段包含大约 2,000 行文本。 我需要它做的是遍历这个 LONGTEXT 字段并取出包含输入内容的行。(抱歉,我不
我有一条插入语句从数据库链接中提取数据。 insert into table (a,b,c) select a,b,c from table@mysqldb; 这里c列在mysql中是long
我有一个 MySQL 表,其字段类型为 LONGTEXT $sql = "SELECT * FROM openings WHERE shortlisted = 'NO' ORDER BY fullN
如果您知道文本行以什么开头,如何从 LONGTEXT 列返回段落行? SELECT SUBSTRING('\nA line of text starts here', `paragraphs`) FR
我正在为我的大学构建一个带有发布消息选项的门户。因此,我使用 LONGTEXT 将消息存储在 mysql 中。但不知何故 LONGTEXT 不接受撇号标记。每当我发布带有撇号标记的句子时,它都会出现以
好吧,我有一个代码可以更新 MySQL 中的 LongText。这是代码: $id = rand(1, 100); $puffleString = "{$id}|{$name}|{$type}|100
我需要更改迁移列类型 $table->string('text');对于文本类型,我尝试通过几种方式做到这一点,但都没有奏效。是否可以在一次迁移中完成。我可以猜测删除该列,然后使用新类型再次创建它,但
我正在使用嵌入式 Apache Derby 数据库进行 JUnit 测试。我有一些 JPA 实体。有些实体包含这样的列: @Column(nullable = false) private Strin
.我需要在右侧截断带有“...”的 DataGridTextColumn LongText,但我不知道像这样“如何制作”: What i Want .与现在不同: Actual 这是我的 DataGr
我正在尝试更新新数据库中的一些图像。我已阅读如何使用此 SQL 查询: UPDATE blogs SET body = REPLACE(body, 'http://www.OLDSITE.com/wp
我的数据库的一列存储了很长的文本。大多数文本都小于 TEXT 的限制 (64KB)。然而,其中大约 0.1% 是长文本 (> 64KB)。最初我使用 TEXT 作为列数据类型,并且我必须忽略长文本的条
我是新的 wordpress。并在 Wordpress、PHP 和 MYSQL 中工作。我有一个数据库表,其中所有凭证到期日期都以如下的长文本格式保存: meta_id post_id
我的数据库中有一个长文本的集合字段。我在该字段中使用了价格,无法将字段类型更改为整数。然而,在我的查询中,我需要按这些字段进行排序,并假设我应该将它们视为一个整数。是否有另一种方法可以查询这些结果以按
我是一名优秀的程序员,十分优秀!