Tag: mysql

使ActiveRecord / Rails使用实际的mysql TIMESTAMP列

Rails’ :timestamp列类型; 它实际上只是一个别名:datetime 。 我正在使用mysql,我想使用实际的unix-timestamp TIMESTAMP列。 a)有没有一种很好的方法来设置它,除了使用SQL创建列? b)ActiveRecord是否会正确处理它(例如在必要时转换为Time ,接受unix时间戳Integer作为输入等)? 我应该期待得到什么,以及在哪里? 为什么: 速度。 这适用于聚合已使用unix时间戳的外部数据源的极其活跃的表。 转换为datetime(甚至首先转换为db字符串,通过2 gsub )会占用其大部分导入时间。 否则我可以做一个廉价的Integer#to_s调用。 时区。 我不想要他们。 我希望它存储时区 – 非常地存储; 处理时区是一种痛苦,除了在个人用户显示之前的最后阶段,与我的需求完全无关。 数据本身无需知道记录的时区。 尺寸。 这是一张大桌子。 TIMESTAMP的大小是DATETIME的一半。 是的,我仍然会在代码中进行updated_at计算,而不是mysql。 那部分不是瓶颈。 为什么你的’为什么不’是错的(先前说明,我不是要求出于无理由的原因:-P): “但TIMESTAMP自动更新”: 默认情况下这是唯一的,并且可以轻松关闭。 我实际上并没有使用Rails,只有ActiveRecord。 是的,这是基于实际的分析数据 ; 我不是在早期优化。 ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter#quote (在Quoting#quoted_date [如果通过Time ]或Mysql2Adapter#quote_string [如果预转换为to_s(:db) ])实际上是我的刮刀中耗费CPU最多的部分。 我想摆脱它。

使用rake db:migrate命令和mysql在Rails中创建表的PRIMARY KEY问题

我的rails版本是4.0.0,我的mysql版本是Ver 14.14 Distrib 5.7.9,适用于Win64(x86_64)。 我正在运行一个旧版本的rails,因为我正在根据我之前的问题获得与mysql的一些冲突。 (查看Kalelc批准的回答我的追索权) 跑步时 rake db:migrate 我收到以下错误 == CreateUsers: migrating ==================================================== — create_table(:users) rake aborted! StandardError: An error has occurred, all later migrations canceled: Mysql2::Error: All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead: CREATE TABLE `users` (`id` int(11) DEFAULT NULL […]

在Rails中使用存储过程

正如我在上一篇文章中所说,我们的Rails应用程序必须与我们从中提取数据的第三方应用程序中的EAV类型的表进行交互。 我创建了一个View以使数据正常,但运行时间过长。 我们有一位离岸PHP开发人员创建了一个存储过程来帮助加快速度。 现在我们遇到了我们需要从Rails应用程序调用此存储过程的问题,以及提供搜索和过滤。 视图可以这样做,因为Rails将其视为传统的Rails模型。 我怎么能用存储过程做到这一点? 我们需要编写自定义搜索和排序(我们使用的是Searchlogic)吗? 管理层无法理解使用Rails存储过程的缺点; 他们所说的是当前的方法加载数据需要很长时间并且需要修复,但搜索和过滤是关键function。 编辑我在这里发布了这个查询的代码: 优化一个奇怪的MySQL查询 。 有趣的是,当我在GUI(Navicat)中运行此查询时,它运行大约5秒钟,但在网页上运行需要一分钟; 由于我在原帖中概述的原因,视图很复杂,但我认为MySQL会优化和缓存像SQL Server这样的视图(或者更确切地说,我是如何阅读SQL Server的),以提高性能。

如何安装Rails MySQL适配器?

我的问题没有那么多了。 gem install mysql不起作用,我没有通过谷歌搜索找到任何东西。 当我尝试gem install mysql2 ,这就是我得到的。 我现在不知道该怎么办。 jason@buster:~/projects/mcif-rails$ gem install mysql2 Building native extensions. This could take a while… ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. /home/jason/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb checking for rb_thread_blocking_region()… yes checking for mysql_query() in -lmysqlclient… no checking for main() in -lm… yes checking for mysql_query() in -lmysqlclient… […]

最好使用空值作为”还是NULL?

数据库架构 我有这个字段: 标题(字符串) 字幕 描述(字符串) 最好将默认值设置为空字符串”或NULL ? 为了更好的读/写和大小存储性能

Ruby on Rails MYSQL错误用户’root @ localhost’访问被拒绝

使用新应用启动rails服务器时出现以下错误: /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/client.rb:37:in`connect’:用户’root’@’拒绝访问localhost’(使用密码:YES)(Mysql2 :: Error) 这是我的database.yml # MySQL. Versions 4.1 and 5.0 are recommended. # # Install the MySQL driver: # gem install mysql2 # # And be sure to use new-style password hashing: # http://dev.mysql.com/doc/refman/5.0/en/old-client.html development: adapter: mysql2 encoding: utf8 reconnect: false database: group_chat_development pool: 5 username: root password: admin socket: /tmp/mysql.sock # Warning: The […]

mysql中的字符串长度是否有限制?

我正在使用Rails的MySQL数据库。 我创建了一个string类型的字段。 它的长度有限制吗? 那么输入text怎么样? 此外,由于text大小可变,我相信使用文本对象会产生额外的成本。 如果有的话,他们有多重要?

OSX 10.11上的Rails El Capitan:未加载库:libmysqlclient.18.dylib

自从我将OSX升级到10.11后,我再也不能将MySQL与我的Rails应用程序一起使用了: $ rails s /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require’: dlopen(/Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError) Referenced from: /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle Reason: image not found – /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle from /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require’ from /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency’ from /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require’ 我发现了其他关于类似问题的post,但在这方面我太初学了,自解决以来版本也发生了变化等。

在为Ruby on Rails应用程序设置mysql数据库时出现“无法通过socket连接到本地MySQL服务器’/var/run/mysqld/mysqld.sock’”错误

我整天都在努力,我需要一些帮助。 我正在尝试为我正在从github工作的RoR项目设置mysql数据库。 当我尝试在终端中设置数据库时,我收到以下错误: Eric-MacBook:~ eric$ cd ~/review_rocket Eric-MacBook:review_rocket eric$ rake db:setup Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ 我已经查看了20个关于SO的问题,但没有一个能够帮助我解决我的问题。 数据库已启动并正在运行,并且还设置了database.yml。 我现在有点生气了……拜托……帮助……为时已晚。 更新:我只看了我安装的gem,由于某种原因,它显示了mysql2 (见下文) Eric-Reas-MacBook:~ ericrea$ gem list *** LOCAL GEMS *** multi_json (1.8.2) mysql2 (0.3.13) net-sftp (2.1.2) 这对我来说有点奇怪…… 更新:这是我的database.yml看起来像: common: &common adapter: mysql2 encoding: utf8 reconnect: false pool: 5 user_name: xxxx password: xxxx […]

从SQL查询回溯到应用程序代码?

有没有办法找到哪一行代码在Rails开发日志中生成MySQL语句? 为了进行一些性能优化,我想找到我的应用程序的哪个部分正在创建哪些MySQL查询。 当我查看我的日志时,我看到每个网页请求都会闪烁的问题,我需要找出它们的来源。 我正在考虑在日志输出中添加一些变量,如____FILE____和____LINE____ 。 那可能吗?