小编Noa*_*oam的帖子

在具有MySQL与NoSQL的单个服务器上,Key-Value数据库是否存在高性能差异

在我的PHP应用程序中,我在一台服务器上的MySQL MyISAM分区表中有一个重达200GB的470M行表.用法包括70%写入/ 30%读取.我正在努力提高性能.目前的主要问题是由于表级锁定导致的读/写争用.我试图在两个选项之间做出决定:

  1. 将MySQL更改为Innodb.优点:避免表级锁定.缺点:更多的磁盘空间,需要更大的HD,可能没有这些快(目前使用RAID10 6*300GB SAS 15k).
  2. 将数据移动到NoSQL数据库.主要内容:学习曲线.之前从未使用过NoSQL.

问题是,在尝试仍然避免分片数据的同时,并考虑到我使用RDMS MySQL作为简单的键值存储这一事实,两种方法之间的性能之间存在很大差异,还是NoSQL的主要优势在于转移到分布式系统?

mysql database mongodb cassandra nosql

6
推荐指数
1
解决办法
804
查看次数

获取flickr缩略图

我想在PHP中获取flickr图片的缩略图.

我所看到的只是他们的API:http: //www.flickr.com/services/api/misc.urls.html

哪个是矫枉过正.在instagr.am/twitpic和其他人中,我发现了一种非常简单的方法(只需将url添加到请求中).

flickr有没有选项我不见了?

php web-services flickr

5
推荐指数
1
解决办法
3169
查看次数

使用FULLTEXT mysql索引自动完成查询

我正在尝试使用mysql FULLTEXT索引MATCH功能为自动完成搜索框创建一个良好的匹配查询.我希望它是非常性能优化的,如果可能的话可以灵活处理拼写错误(没有太多的工作).

搜索适用于用户,其中每个用户都有一个名称和一个屏幕名称.我想匹配它们的组合.例如,如果用户名是"Guy Kawasaki"并且屏幕名称是"gkawasaki",则查询"gkawas"和"Guy K"将指向他.此外,我希望结果按照匹配分数和我在表格中持有的等级的组合进行排序.

目前我所做的是两个不同的查询:

SELECT  *, MATCH (name) AGAINST ('+Guy +K*' IN BOOLEAN MODE) AS SCORE  
    FROM  
        users  
    WHERE  
        MATCH (name) AGAINST ('+Guy +K*' IN BOOLEAN MODE)  
    ORDER BY SCORE, grade DESC LIMIT 5


SELECT  *, MATCH (screen_name) AGAINST ('+Guy +K*' IN BOOLEAN MODE) AS SCORE  
    FROM  
        users  
    WHERE  
        MATCH (screen_name) AGAINST ('+Guy +K*' IN BOOLEAN MODE)  
    ORDER BY SCORE, grade DESC LIMIT 5
Run Code Online (Sandbox Code Playgroud)

对于我使用两个查询并且对BOOLEAN MODE和所有"+"符号都不太确定的事实我不是很满意.我怎样才能改善这个?实现这种自动完成的最佳方法是什么?

php mysql sql

5
推荐指数
1
解决办法
2434
查看次数

如果我杀死一个巨大的MySQL InnoDb DELETE查询会怎样?

我目前正在运行的DELETE查询所花的时间比预期的要长得多(已经10小时了!)。我想通过phpmyadmin进程杀死它,但是担心会发生什么。他自动回滚会花费很多时间吗?当前查询状态显示为“正在更新”。

mysql sql query-optimization

5
推荐指数
1
解决办法
4526
查看次数

Chrome处理智能网址并导致并发请求彼此挂起

我在Google-Chrome中遇到一个奇怪的问题,当一个标签打开时,一个长时间运行的脚本,一个不同的标签处于"挂起"状态,直到第一个标签完成.我创建了一个小小的小提琴来重现这个问题,我也在这里包括在Safari上运行的结果.当添加这个小提琴时,?q = a和?q = b它解决了这个问题.但是,当我打电话给两个不同的智能网址(http://domain.com/a/v1 http://domain.com/a/v2甚至http://dev.domain.com/a/v6或者http://dev.domain.com/b/v8)时,他们也会导致这种"未决"行为.

小提琴:

<?php
echo time();
echo '<br>Now:       '. date('h:m:s');

sleep(10);

echo time();
echo '<br>Now:       '. date('h:m:s');

?>
Run Code Online (Sandbox Code Playgroud)

在Google Chrome中打开两个并发标签时,输出:1:

Now: 11:01:12
1357117332
Now: 11:01:22
1357117342
Run Code Online (Sandbox Code Playgroud)

2:

Now: 11:01:22
1357117342
Now: 11:01:32
1357117352
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,虽然我几乎在同一时间开始它们,但是第二个在它开始之前等待第一个完成它们.

在Safari上运行时也是如此:1:

Now: 10:01:36
1357116336
Now: 10:01:46
1357116346
Run Code Online (Sandbox Code Playgroud)

2:

Now: 10:01:37
1357116337
Now: 10:01:47
1357116347
Run Code Online (Sandbox Code Playgroud)

您可以注意到,在Chrome中,第二个脚本仅在第一个脚本完成后启动,而在Safari中,它们一起工作.是什么导致这种奇怪的行为?我应该寻找哪些信息来帮助调试原因?

更新:添加?q = a和?q = b的答案可以解决这个问题是正确的.现在我想弄清楚为什么我在这个问题上运行,尽管我打电话给两个不同的网址.我使用智能URL,URL格式domain.com/dir/var1domain.com/dir/var2甚至dev.domain.com/var6都会导致同样的效果.是什么导致这个?

browser lamp google-chrome client-server

5
推荐指数
1
解决办法
499
查看次数

这个正则表达式如何将文本分成句子?

我知道这个正则表达式将文本分成句子.有人能帮我理解怎么样?

/(?<!\..)([\?\!\.])\s(?!.\.)/
Run Code Online (Sandbox Code Playgroud)

php regex perl

1
推荐指数
2
解决办法
920
查看次数

如何为Web UI使用javascript键盘事件

我有兴趣使用右侧\左箭头,空格键等JS事件.想知道什么是正确的方法.我想在这样的用户交互中滑动照片,使DIV出现等.

我想到了jQuery的可能实现,例如http://api.jquery.com/event.which/ 虽然我不确定这是最好的方法.

以下是这种UI实现的两个很好的例子(他们是如何做到的?) http://www.thesixtyone.com ; http://www.pictorymag.com/showcases/summer-jobless

我更喜欢那种#kinda guy,正在寻找正确的方向来挖掘.谢谢.

php user-interface javascript-events javascript-framework

1
推荐指数
1
解决办法
860
查看次数

获取所有行的MySQL查询UNTIL(列)大于X.

我有以下数据

user_id   days   date
88        2      2013-08-25
88        4      2013-08-23
88        18     2013-08-5
88        1      2013-08-4
88        2      2013-08-2
73        11     2013-08-2
299       4      2013-08-2
12        983    2013-08-2
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取order by DATE desc特定user_id的所有最近的行(),直到days列的SUM 大于X.例如,在这种情况下,如果X = 7,我将获得SUM(天)= 24的三个第一行.

mysql sql

1
推荐指数
1
解决办法
722
查看次数