我对MongoDb非常兴奋并且最近一直在测试它.我在MySQL中有一个名为posts的表,大约有2000万条记录仅在名为"id"的字段上编入索引.
我想比较MongoDB的速度,我运行了一个测试,它将从我们庞大的数据库中随机获取和打印15条记录.我为mysql和MongoDB运行了大约1000次查询,我很惊讶我没有注意到速度上的很多差异.也许MongoDB快了1.1倍.这非常令人失望.有什么我做错了吗?我知道我的测试并不完美,但是当涉及阅读密集的杂务时,MySQL与MongoDb相当.
注意:
用于测试MongoDB的示例代码
<?php
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_taken = 0;
$tries = 100;
// connect
$time_start = microtime_float();
for($i=1;$i<=$tries;$i++)
{
$m = new Mongo();
$db = $m->swalif;
$cursor = $db->posts->find(array('id' => array('$in' => get_15_random_numbers())));
foreach ($cursor as $obj)
{
//echo $obj["thread_title"] . "<br><Br>";
}
}
$time_end = microtime_float();
$time_taken = $time_taken + ($time_end - $time_start);
echo $time_taken;
function get_15_random_numbers()
{
$numbers = array();
for($i=1;$i<=15;$i++)
{ …
Run Code Online (Sandbox Code Playgroud) 为什么以下代码显示undefined
?我们不允许创建具有单个值的数组吗?放置两个值不会显示此错误.这是Javascript的问题吗?
<script>
var tech = new Array(21);
alert(tech[0]);
</script>
Run Code Online (Sandbox Code Playgroud) 我将如何删除重复的字符(例如,删除信件k
中cakkkke
为它是cake
)?
一种直接的方法是循环遍历字符串的每个字符,如果字符不是前一个字符的重复,则将字符串的每个字符附加到新字符串.
以下是一些可以执行此操作的代码:
$newString = '';
$oldString = 'cakkkke';
$lastCharacter = '';
for ($i = 0; $i < strlen($oldString); $i++) {
if ($oldString[$i] !== $lastCharacter) {
$newString .= $oldString[$i];
}
$lastCharacter = $oldString[$i];
}
echo $newString;
Run Code Online (Sandbox Code Playgroud)
有没有办法使用正则表达式或内置函数更简洁地做同样的事情?
在Java中,我们可以通过在函数定义中使用'synchronized'关键字来使方法"同步".
我们如何在Ruby中做到这一点?
在我们使用JavaScript拍摄图片之前,是否有在html中显示实时相机视图(例如嵌入div中)的视图?我已经尝试过PhoneGap,但它完全启动了一个新的相机应用程序,并在返回之前完全离开了我的html网络应用程序.我需要在我的应用中嵌入一些内容
谢谢
我使用了此问题接受的解决方案,例如在/index.php?id=3中通过id进行加密.问题是我无法将加密值作为网址发送,例如/index.php?id=dsf13f3343f23/23=.因为有时它会在网址中包含奇怪的字符,例如最后注意=
标记
我需要从字符串中删除所有非阿拉伯字符,并最终在堆栈溢出的人的帮助下能够提出以下正则表达式来摆脱所有不是阿拉伯语的字符.
preg_replace('/[^\x{0600}-\x{06FF}]/u','',$string);
Run Code Online (Sandbox Code Playgroud)
问题是上面也删除了空格.现在我发现我也需要角色A-Z,a-z,0-9, !@#$%^&*()
.那么我该如何修改正则表达式呢?
感谢您
在我开始使用MySql WorkBench之前,我使用的是phpmyadmin,并喜欢将varchars的默认值设置为空.因此,在我的代码中,我不必检查空值,只能使用if $ value =''比较.如何在mysql workbench中将默认值设置为空?如果我将文本框留空不像phpmyadmin那么它认为我不想要任何默认值.
感谢您
伊姆兰
为什么以下字符串的长度不同,尽管字符串中的字符数相同
echo strlen("? ? ? ? ? ? ? ? ?")."<BR>";
echo strlen("? ? ƒ ? ? ? ? ? ?")."<BR>";
Run Code Online (Sandbox Code Playgroud)
输出
35
26
Run Code Online (Sandbox Code Playgroud) 希望你们都做得很好.我们有一个巨大的mysql表叫做'posts'.它有大约70,000条记录,大小已达到10GB左右.
我的老板说我必须做一些事情才能让我们轻松处理这个庞大的表格,因为如果那个表被破坏了,那么我们需要花很多时间来恢复表格.有时也很慢.
什么是可能的解决方案,以便处理此表变得更容易,如在所有方面.
该表的结构如下:
CREATE TABLE IF NOT EXISTS `posts` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`thread_id` int(11) unsigned NOT NULL,
`content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`first_post` mediumtext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
`publish` tinyint(1) NOT NULL,
`deleted` tinyint(1) NOT NULL,
`movedToWordPress` tinyint(1) NOT NULL,
`image_src` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`video_src` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`video_image_src` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`thread_title` …
Run Code Online (Sandbox Code Playgroud)