1、MySQL数据库,一天一万条以上的增量,怎么优化?2、写个函数来解决多线程同时读写一个文件的问题。3. 写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。 

解决方案 »

  1.   

    第一个不会
    第二个是不是只要使用flock锁定就行了?
    第三个吗,想到那么一两个方法,感觉简单就是先$_SERVER[PHP_SELF],然户strpos($_SERVER[PHP_SELF],'/')最后substr一下应该就得到了~~
    不过flock貌似在win32下有点问题
      

  2.   

    1、MySQL数据库,一天一万条以上的增量,怎么优化?
    不知道是不是我中文不好, 不存在的程序怎样优化? 应该叫设计吧!2、写个函数来解决多线程同时读写一个文件的问题。
    写过, 但要我把代码背出来... =_=3. 写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。 
    这个不难...不过我连php有什么函数都不记得(我只会echo a_a")
      

  3.   

    1、MySQL数据库,一天一万条以上的增量,怎么优化? 
    对啊,这个是设计吧?那也要看访问量怎么样啊?这样才能确定用什么类型的表,如果访问量低,那就肯定要用Innodb的,如果高就要用myiasm的。访问量都不知道。。额~~
      

  4.   

    php与c的边缘
    爱与恨的边缘
      

  5.   

    1、MySQL数据库,一天一万条以上的增量,怎么优化?首先应该做好mysql基本优化,字段大小,索引;另外根据具体的需求看有没有必要建立二个一样的表,一个是存储历史数据,一个是当天的或者最近多少天的;根据日期建立索引这个应该有必要;
      

  6.   

    1、一天增量1W数据量并不算十分大,一年下来也就四百万左右,而且没有给定数据的性质和读取频率等。问题可能出在写入压力的问题,我觉得优化的方向应该在于提高写入效率,这样的话索引、外键、触发器等等的使用就需要慎重了。2、不太严谨的话flock,临时文件锁;变态一点的可以用队列控制或者副本合并3、懒得想
      

  7.   

    前2题不会~~~~第3题:就用$_SERVER[PHP_SELF]可以得到
      

  8.   

    第一个,MYSQL每天一万条确实不算多考虑到每天的增加主表会逐渐庞大(数据量大了可能作分表之类的操作)可以作一个增量表记录每天增加记录来解决主表数据量大操作缓慢的问题。第二个问题没看懂第三个问题比较简单5个不知道能不能想那么多。懒得想
      

  9.   

    第一,把以前的数据都缓存了,把当天的写进一个表里.第二,不会第三,$_SERVER里有PHP_SELF, REQUEST_URI ,还有....
      

  10.   

    我来写下大家都不愿意想的。哈哈1. substr($sPath, -3)
    2. $arPath = explode("/", $sPath);  $arPath[ count($arPath)-1 ]
    3. $arPath = explode(".", $sPath);  $arPath[ 1 ]
    4. $arPath = pathinfo( $sPath );    $arPath["extension"]
    5. preg_match("/.(\w+)$/", $sPath, $arPath);    $arPath[1]
      

  11.   

    第二个考的就应该是flock这个函数
      

  12.   

    不会啊  学习中 
    只知道第二个有个FLOCK的函数原来好象在哪里看过 
    至于第三个好象是正则的吧  呵呵 
    正则的不会啊 顺便问下 为什么有的正则就是匹配油箱的那个正则
    ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $address)
    这个中间那里--“\-”--是怎么回事啊?为什么要加这个啊?.....
    高手回答下啊 
      

  13.   

    1.加服务器,拆表,加索引,建立memcached内存缓存
      

  14.   

    1,如果是单纯的记录表,每10天换一个表算了.如果不是,就考虑分表.每天1万条,一年才360万,如果做仔细的索引设计,最小空间的字段设计,根本就是小CASE
      

  15.   

    <?php
    $path_parts = pathinfo("/www/htdocs/index.html");
    echo $path_parts["dirname"] . "\n";
    echo $path_parts["basename"] . "\n";
    echo $path_parts["extension"] . "\n";
    ?> 
      

  16.   

    他所谓的每天一万 大概就是个说法  可能他想让你表达的是如果每天固定存入大量数据在某个表里 (同时要考虑的是大访问量)应该怎么优化设计
    方法就多了去了  常用的方法就是 :建立良好的索引。良好的数据库设计。当需要操作的数据按年为单位的话,比如最常用的为当年的数据,那么设计时最简单的方法就是把存储该数据的表设计成已年为单位生成新表,  2008年可以生成 tb2008 到了2009年 数据自动生成并存储在tb2009表中 极大优化了查询速度
      

  17.   

    第二个问题:
    function swritefile($filename,$writecontent,$openmode='w'){
       if(@$fp=fopen($filename,$openmode)){
           flock($fp,2);
           fwrite($filename,$writecont);
           fclose($fp);
         return true;
       }esle{
           return false;
      }
    }
     flock()在windows 下有效;
      

  18.   

    第一题,我来抛点砖。一天一万的数据插入量确实不算多。不过我考虑到的是类似新浪这样的一个应用,是属于典型的Single-Write-Multiple-Select的应用,也就是说,编辑人员(或者用户)创建(写入)一个帖子一般只有一次,但是会有很多很多人读这个帖子。同时,考虑到帖子的时效性:过去的老帖子一般翻的人会少,新的帖子翻的人会多。同时,考虑到全文搜索的必要性和及时性。建议如下:1. 至少建立一个分时段的归档数据库和当天增量数据库。所有的当天帖子都写到这个增量数据库中,并建立好索引和全文搜索支持。在插入时,由于平均8秒钟左右才会插入一个帖子,所以不用考虑暂时关闭索引的方法。
    2. 每天定时进行归档的更新,并更新全文搜索索引。抛砖了……
      

  19.   

    第一题 应该是要分表,然后定时合并吧,也可考虑memcache缓存批量导入。
    第二题 应该不是简单的靠 flock ,应该是用memcache cas ,底层会一直for尝试10000次来保证操作的原子性。
    第三题 就是考查对PHP函数的掌握程度。explode pathinfo strstr substr 正则 preg_match 等。
      

  20.   

    我来说说第一题:每天1W的增量其实并不大,如果是mysql集群的话,应该很容易就能满足要求,具体优化,我想除非从架构或者开发者来考虑,纯粹从dba的角度来分析问题的话,就算这种程度的压力能撑得住,再大的话dba也是没办法的,这就要要求开发人员写的sql语句尽可能简单,避免一些复杂的查询。。是在不行 多加几层cache