Questions tagged «database»

Drupal提供了一个标准的,与供应商无关的抽象层,用于访问数据库服务器。

1
search_index和search_dataset表有什么用,我可以清理它们吗?
我试图将sql从本地开发站点转储到生产服务器,我发现search_index和search_dataset这两个表很大,使得sql文件真的很大。 我猜这两个表是关于存储搜索索引的,以后我总是可以从头开始重新索引。如果有错请指正。 那么删除它们的所有记录是否可以/安全?然后导出数据库,导入到我的服务器。通过这样做,我可以减小转储文件的文件大小。 谢谢!


2
MariaDB与MySQL是否适用于Drupal 6?
我想知道将Mysql转换为社区站点的大型D6数据库(使用MyIsam引擎,读取率为80%,写入率为20%,写入速度约为1300 qps)是一个好主意吗? MariaDB似乎是非常可取的: MariaDB是一种数据库服务器,为MySQL提供了嵌入式替换功能。MariaDB由MySQL的某些原始作者构建,并得到了自由和开源软件开发人员的广泛支持。除了MySQL的核心功能外,MariaDB还提供了一组丰富的功能增强功能,包括备用存储引擎,服务器优化和补丁程序。 但是,我想听听drupallers的有关预期性能提升的第一手经验。我知道MariaDB默认使用XtraDB(InnoDB改进)存储引擎。实际上,一旦我将Mysql数据库移至InnoDB引擎,我的网站就会显着减速,因此我不确定所假定的性能提升。 我也想知道转换到MariaDB的注意事项(可能是不兼容的模块等)。 谢谢
8 database 

4
如何从MySQL迁移到PostgreSQL
我需要知道如何将我的Drupal 6数据库从MySQL迁移到PostgreSQL。我也喜欢听到有关实际迁移的第一手经验故事。 PS:我发现了这个 drupal-mysql2pgsql.pl迁移脚本,该脚本显然可以完成工作,但是由于我不知道如何在两个数据库中创建“无密码帐户”,因此无法使用它。还有本指南(泰文版),可在脚本中向数据库连接行添加凭据。但这也无济于事,因为我无法连接到Postgresql。我对Postgresql知之甚少,可能有一些愚蠢的错误。任何通过解释/教程对此将不胜感激。
8 6  migration  database 

2
Drupal 7中的db_affected_rows for db_query
我只是注意到@Berdir非常适合db_affected_rows从Drupal 7中删除。我现在想知道现在最好的方法是检测您运行的查询是否更改了数据库中的任何内容。 一个典型的用例是。 db_query(...); if (!db_affected_rows()) { db_query(...); } 我看了从db_query返回的查询对象,但似乎并没有太大帮助。 更新: 我不清楚我在什么情况下需要该信息。 我当前的用例是一个非常简单的用例。我有一个带有nid列和一些数据列的节点类型表。我有一个表单,提交表单后,我想插入或更新数据库中的行。 db_update/ 的问题db_insert在于,如果我先使用update,并且在update返回0时插入,我将无法捕获条件,即使用db中的值提交表单。如果我先使用db_insert,则在数据库中已经存在一行的情况下,将引发en错误。 我想在这种特定情况下,我可以在创建节点时插入一个空白值,然后仅使用更新,但是在某些情况下,如果我需要存储键入到外部数据库的信息,这可能是不可能的。我还想避免必须依赖数据库值才能使代码起作用。 对于这种情况,我通常的策略是 db_query("INSERT IGNORE INTO ...") if (!db_affected_rows()) { db_query("UPDATE ..."); } 无论数据库处于什么条件,这样做都是简单且无错误的。我现在看到的最佳选择是使用SQL处理它并执行以下操作: db_query("INSERT ... ON DUPLICATE KEY UPDATE"); 但是我希望数据库API能够处理此问题。
8 7  database 

2
哪个表存储内容类型字段?
我在drupal 8中有一个内容类型,并且哪个表存储了内容类型字段和drupal 8中的类型?Unlike in drupal 6(其中将有专门针对内容类型content_type_contenttypename的表),例如未创建表和字段。这些字段和数据类型将存储在drupal 8中吗?
7 nodes  8  entities  database 

5
如何导入非常大的Drupal数据库的工作?
我正在使用Vagrant和OracleVM运行Drupal7。已经启动了站点并正在运行,并且试图导入数据库。到目前为止,我已经运行drush cc并清除了缓存缓存,然后我做了 drush sql-cli < mydb.sql drush命令花费了很长时间,我不确定它是否在做任何事情。数据库文件不到1 GB。 我该怎么做才能使它正常工作,或者有更好的方法吗?

4
如何在Drupal 7中的特定字段上db_select DISTINCT?
我了解您可以在db_select语句上指定-> distinct(),以便在查看所有字段时仅返回不同的值。但是我想要的是通过仅查看一个字段来返回不同的值。这是我的代码: $event_table = db_select('my_table', 'e') ->distinct() ->orderBy('e.time', 'ASC');//ORDER BY $event_table->join('node', 'n', 'e.nid = n.nid'); //JOIN node with events $event_table->groupBy('e.time');//GROUP BY time $event_table->fields('e')//SELECT the fields from events ->fields('n',array('type','status','title'))//SELECT the fields from node ->orderBy('e.time', 'ASC');//ORDER BY $result_event_table = $event_table->execute(); $result_event_table = $result_event_table->fetchAllAssoc('time'); 假设我想将非重复列设为e.nid。您可能会认为-> distinct('e.nid')可以工作,但是它仍会基于所有字段返回不同的值(即,distinct(columns1,column2,columns3等)。
7 database 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.