我有一个contacts包含字段,如表postcode,first name,last name,town,country,phone number等等,所有这些都被定义为VARCHAR(255)即使没有这些领域都不会接近有255个字符.(如果你想知道,就是这样,因为Ruby on Rails迁移VARCHAR(255)默认情况下将字符串字段映射到我并且我从不打扰覆盖它).
由于VARCHAR只会领域的实际字符的数目存储(连同字段长度),是否有任何明显的优势(性能或其他方式)使用,比方说,VARCHAR(16)在VARCHAR(255)?
此外,大多数这些字段都有索引.字段上的较大VARCHAR大小是否会影响索引的大小或性能?
仅供我使用MySQL 5.
我正在尝试使用Apache 2.2 VirtualHost声明中的mod_rewrite将所有请求重定向到我的域到另一个域.有一个例外 - 我希望/audio路径中的所有请求都不会被重定向.
我写了一个RewriteCond和RewriteRule来做到这一点,但它不太正确,我无法弄清楚为什么.正则表达式包含字符串"/ audio"的负前瞻,但由于某种原因,这不匹配.这是定义:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*\.)?mydomain\.net(?!/audio) [NC]
RewriteRule ^(.*)$ http://www.newdomain.net [L,R=301]
Run Code Online (Sandbox Code Playgroud)
如果我将RewriteCond更改为:
RewriteCond %{HTTP_HOST} ^(.*\.)?mydomain\.net/(?!audio) [NC]
Run Code Online (Sandbox Code Playgroud)
(即将正斜杠放在负前瞻部分之外)然后它可以正常工作,但这样做的缺点是不会重定向到没有尾部斜杠的mydomain.net请求.
谁能指出我做错了什么?
(注意:上面的RewriteRule位中的域周围的尖括号是由StackOverflow.com添加的 - 它们在实际代码中不存在!)
以下是规则:
<VirtualHost *:80>
ServerAdmin me@mydomain.net
DocumentRoot "/var/www/mydomain.net/htdocs"
ServerName www.mydomain.net
ServerAlias mydomain.net
RewriteEngine on
RewriteCond {REQUEST_URI} !^/audio
RewriteRule ^(.*)$ http://www.newdomain.net [L,R=301]
RewriteLog logs/mod_rewrite_log
RewriteLogLevel 3
ErrorLog logs/error_log
CustomLog logs/access_log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
谢谢@mercutio - 这很有道理,但它似乎仍然不起作用.
当我向http://mydomain.net/audio/something.mp3发出请求时,这是mod_rewrite日志所说的内容:
(2) init rewrite engine with requested uri /audio/something.mp3
(3) applying pattern '^(.*)$' to …Run Code Online (Sandbox Code Playgroud) 我目前正在为Rails应用程序设置一个新的生产环境,该应用程序包括多个负载均衡的应用程序服务器(目前只有两个,但随着时间的推移会增加).
我想使用Capistrano(我已经用于现有的单个服务器)在单个命令中处理应用程序到所有这些服务器的部署.我可以看到这样做的唯一方法是使用capistrano-ext(我其实已经使用部署到我的测试和试运行环境),通过定义一个新的"环境"为每个应用服务器(app1,app2等等),并进行了使用部署就像是:
cap app1 app2 app3 deploy
Run Code Online (Sandbox Code Playgroud)
这是推荐的做法还是有更好的方法?
我发现了FasterCSV(1.5.0)的CSV解析问题,这似乎是一个真正的错误,但我希望有一个解决方法.
基本上,当字段用引号括起来时,在分隔符后面添加一个空格(在我的例子中是逗号)会生成一个MalformedCSVError.
这是一个简单的例子:
# No quotes on fields -- works fine
FasterCSV.parse_line("one,two,three")
=> ["one", "two", "three"]
# Quotes around fields with no spaces after separators -- works fine
FasterCSV.parse_line("\"one\",\"two\",\"three\"")
=> ["one", "two", "three"]
# Quotes around fields but with a space after the first separator -- fails!
FasterCSV.parse_line("\"one\", \"two\",\"three\"")
=> FasterCSV::MalformedCSVError: Illegal quoting on line 1.
Run Code Online (Sandbox Code Playgroud)
我疯了,或者这是FasterCSV中的一个错误?
我有一个包含许多错误行的日志文件,例如:
Failed to add email@test.com to database
Run Code Online (Sandbox Code Playgroud)
我可以通过一个grep调用过滤这些行:
grep -E 'Failed to add (.*) to database'
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但我真正想做的是使用grep(或者我将输出传递到其他Unix命令)只输出匹配行的电子邮件地址部分.
这可能吗?
我目前正在为我的Rails应用程序使用基于ActiveRecord的会话存储,我有一个后台进程,每30分钟清除一次非活动会话.
我想切换到Rails新的基于cookie的会话存储,但是如何将会话的到期时间设置为30分钟,而不是默认的"会话结束时"值?
我有几个带有日期属性的模型,对于每个模型,我想根据给定的范围验证这些日期.一个基本的例子是:
validates_inclusion_of :dated_on, :in => Date.new(2000,1,1)..Date(2020,1,1)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想在运行时使用类似的方法评估日期范围named_scope,例如:
validates_inclusion_of :dated_on, :in => lambda {{ (Date.today - 2.years)..(Date.today + 2.years)}}
Run Code Online (Sandbox Code Playgroud)
当然上面的方法不起作用,那么实现相同结果的最佳方法是什么?
我想DEBUG在我们的登台服务器上使用我的Rails应用程序的日志记录级别,但我想delayed_job(SELECT每隔10秒将一条语句记录到主Rails日志中)以记录INFO级别,所以我不会得到这些delayed_job SELECT语句在那里.
这可能吗?
我的Rails应用程序使用的MySQL数据库目前具有默认排序规则latin1_swedish_ci.由于Rails应用程序(包括我的)的默认字符集是UTF-8,因此utf8_general_ci在数据库中使用排序规则对我来说似乎是明智的.
我的想法是否正确?
假设是,将整理和数据库中的所有数据迁移到新编码的最佳方法是什么?
我对我的数据库有一个查询:
SELECT * FROM expenses WHERE user_id = ? AND dated_on = ?
Run Code Online (Sandbox Code Playgroud)
我在user_id和dated_on列上添加了一个索引.当我使用检查索引时SHOW INDEXES FROM expenses,有两行 - 一行的seq_in_index值为1,另一行的seq_in_index值为2.
我的问题是,如果我然后提交一个只使用两个WHERE子句中的一个的查询,例如:
SELECT * FROM expenses WHERE user_id = ?
Run Code Online (Sandbox Code Playgroud)
创建另一个仅对user_id列进行索引的索引有什么好处,或者上面描述的user_id/ dated_onindex是否同样有效使用?
最后,如果使用查询怎么样:
SELECT * FROM expenses WHERE dated_on = ?
Run Code Online (Sandbox Code Playgroud)
seq_in_index在这种情况下,2 的值如何影响索引的使用和性能?
mysql ×3
sql ×2
apache ×1
capistrano ×1
date ×1
delayed-job ×1
deployment ×1
fastercsv ×1
grep ×1
indexing ×1
mod-rewrite ×1
ruby ×1
shell ×1
unix ×1
validation ×1