小编sou*_*rge的帖子

与交叉连接相比,内连接的性能

发出内连接的效果与在WHERE子句中使用连接条件声明交叉连接相同.我注意到我公司的很多人使用交叉连接,我会使用内部连接.在更改了一些查询之后,我没有注意到任何显着的性能提升,并且想知道这是否只是巧合,或者DBMS是否透明地优化了这些问题(在我们的案例中是MySql).这是一个讨论的具体例子:

SELECT User.*
FROM User, Address
WHERE User.addressId = Address.id;

SELECT User.*
FROM User
INNER JOIN Address ON (User.addressId = Address.id);
Run Code Online (Sandbox Code Playgroud)

sql performance

53
推荐指数
4
解决办法
5万
查看次数

在子查询中引用外部查询的表

是否可以使用MySQL在子查询中引用外部查询?我知道在某些情况下这是可能的:

SELECT *
FROM table t1
WHERE t1.date = (
    SELECT MAX(date)
    FROM table t2
    WHERE t2.id = t1.id
);
Run Code Online (Sandbox Code Playgroud)

但我想知道这样的事情是否可行:

SELECT u.username, c._postCount
FROM User u
INNER JOIN (
    SELECT p.user, COUNT(*) AS _postCount
    FROM Posting p
    --# This is the reference I would need:
    WHERE p.user = u.id
    GROUP BY p.user
) c ON c.user = u.id
WHERE u.joinDate < '2009-10-10';
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用a GROUP BY或通过将外部WHERE子句拉入子查询来实现相同的功能,但是我需要这个用于自动生成SQL,并且由于各种其他原因而无法使用任何一种替代方法.

UPDATE:对不起,这个问题导致了一些困惑:第一个查询只是一个工作的例子,来证明什么,我也不需要.

更新2:我需要u.id = p.user比较:第一个计算在'2009-10-10之前加入的用户,而另一个是连接条件,正确关联表行.

mysql sql

47
推荐指数
3
解决办法
7万
查看次数

你能用c或c ++分配一个非常大的单块内存(> 4GB)吗?

这些天我有很大的ram,我想知道,有可能分配一块大于4GB的单块内存吗?或者我需要分配一堆较小的块并处理它们之间的切换?

为什么???我正在处理一些openstreetmap xml数据,这些文件非常庞大.我目前正在流式传输,因为我无法将它们全部加载到一个块中,但我对malloc或new的上限感到好奇.

c c++ memory malloc

42
推荐指数
7
解决办法
2万
查看次数

PHP,如何将func-get-args值作为参数列表传递给另一个函数?

我想创建一个函数(my_function())获取无限数量的参数并将其传递给另一个函数(call_another_function()).

function my_function() {    
   another_function($arg1, $arg2, $arg3 ... $argN);    
}
Run Code Online (Sandbox Code Playgroud)

所以,想打电话my_function(1,2,3,4,5)来打电话another_function(1,2,3,4,5)

我知道我应该使用func_get_args()所有函数参数作为数组,但我不知道如何将这些参数传递给另一个函数.

谢谢.

php

33
推荐指数
2
解决办法
8942
查看次数

在mysql中从数据库创建转储文件

以下是我从mysql数据库创建转储的.

mysqldump -u root tempbkk > ttt.dump
Run Code Online (Sandbox Code Playgroud)

但我想创建一个转储,从我们选择的数据库创建转储时排除一个或多个文件.这个命令是什么?

mysql dump

29
推荐指数
2
解决办法
6万
查看次数

你在哪里进行单元测试?

我在项目中找到了几种常规单元测试约定,我不确定哪种方法适合我们的下一个PHP项目.我正在尝试找到最佳约定,以便在查看源代码时鼓励简单的开发和测试的可访问性.我对您对每个方面的经验/意见非常感兴趣:

  1. 一个用于生产代码的文件夹,另一个用于单元测试的文件夹:这将单元测试与项目的逻辑文件分开.这种关注点的分离同样是一个麻烦,因为它是一个优势:有人在研究项目的源代码 - 我想 - 无论是浏览实现还是单元测试(或更常见的是:仅实现).单元测试作为你的课程的另一种观点的优势将丢失 - 这两个观点与IMO相距甚远.
  2. 带注释的测试方法:我所知道的任何现代单元测试框架都允许开发人员创建专用测试方法,对它们进行注释(@test)并将它们嵌入到项目代码中.我在这里看到的一大缺点是项目文件变得杂乱无章.即使这些方法是使用注释标题分开的(比如此行下面的UNIT TESTS),它也会不必要地使该类膨胀.
  3. 在与实现文件相同的文件夹中测试文件:我们的文件命名约定规定包含类(每个文件一个类)的PHP文件应以.class.php结尾.我可以想象将关于类文件的单元测试放到以.test.php结尾的另一个文件中会使得测试更多地呈现给其他开发人员而不会污染类.虽然它膨胀项目文件夹,而不是实现文件,这是我最喜欢的,但我有疑虑:我会认为其他人已经提出这个,并且出于某种原因丢弃了这个选项(即我没见过)一个java项目,文件 Foo.javaFooTest.java位于同一个文件夹中.)也许是因为Java开发人员更多地使用IDE,使他们更容易访问测试,而在PHP中没有出现大编辑器(如eclipse for eclipse)我知道很多开发人员使用vim/emacs或类似的编辑器,对PHP开发本身几乎没有支持.

您对这些单元测试展示位置的体验如何?你有另一个我没有在这里列出的约定吗?或者我只是将单元测试可访问性高估给审阅者?

unit-testing

22
推荐指数
3
解决办法
3320
查看次数

套接字编程:如何处理带外数据

我只是查看了wikipedia关于带外数据的条目,据我所知,OOB数据在某种程度上被标记为更重要并被视为普通数据,但是在单独的流中传输,这让我感到非常困惑.

实际的问题是(除了"有人能解释一下OOB数据是什么吗?"):

我正在编写一个使用套接字的unix应用程序,需要使用select(),并想知道如何处理exceptfds参数?我是否需要将所有套接字放入此参数并对此类事件做出反应?或者我只是忽略它们?

sockets out-of-band

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

如何组合这些正则表达式?

四个非常相同的正则表达式 我用以下标量值替换字符串.怎么能更有效率?

$line =~ s/\[(receiver)\]/$receiver/g;
$line =~ s/\[(place)\]/$place/g;
$line =~ s/\[(position)\]/$position/g;
$line =~ s/\[(company)\]/$company/g;
Run Code Online (Sandbox Code Playgroud)

谢谢.

regex perl

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

PHP如果匹配则递归取消设置数组键

我有以下数组,我需要递归循环并删除任何具有键'字段'的子数组.我已经尝试了阵列过滤器,但我无法使其中任何一个工作.

$myarray = array(
    'Item' => array(
        'fields' => array('id', 'name'),
        'Part' => array(
            'fields' => array('part_number', 'part_name')
        )
    ),
    'Owner' => array(
        'fields' => array('id', 'name', 'active'),
        'Company' => array(
            'fields' => array('id', 'name',),
            'Locations' => array(
                'fields' => array('id', 'name', 'address', 'zip'),
                'State' => array(
                    'fields' => array('id', 'name')
                )
            )
        )
    )    
);
Run Code Online (Sandbox Code Playgroud)

这就是我需要它的结果如下:

$myarray = array(
    'Item' => array(
        'Part' => array(
        )
    ),
    'Owner' => array(
        'Company' => array(
            'Locations' => array(
                'State' => array( …
Run Code Online (Sandbox Code Playgroud)

php arrays recursion

9
推荐指数
2
解决办法
2万
查看次数

PHP:对象在创建后立即为NULL

我们的php日志中偶尔会出现非常奇怪的错误:Trying to get property of non-object.

这个确切的错误似乎是由$shortName以下if语句中的成员访问引起的:

class MyLocaleWrapper extends SomeOtherClass {
    …
    protected static $system = NULL;
    public static function getSystemLocale() {
        if (self::$system === NULL) {
            self::$system = new self();
            debug(self::$system);
            self::$system->rfcName = SYSTEM_LOCALE_RFCNAME;
            self::$system->shortName = strtolower(Locale::getRegion(self::$system->rfcName));
            if (self::$system->shortName == '') {
                self::$system->shortName = strtolower(self::$system->rfcName);
            }
            …

# in another file:
class SomeOtherClass {
    …
    public function __construct() {
        # Some documentation about features that have been
        # removed from the constructor, but …
Run Code Online (Sandbox Code Playgroud)

php

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

标签 统计

php ×3

mysql ×2

sql ×2

arrays ×1

c ×1

c++ ×1

dump ×1

malloc ×1

memory ×1

out-of-band ×1

performance ×1

perl ×1

recursion ×1

regex ×1

sockets ×1

unit-testing ×1