PHP 资料缓存数组的实现
PHP 文件缓存数组的实现
在一个试验性项目中,我需要从 sqlite3 数据库中随机读取一条记录给用户,要读取的数据表现在有23850条记录,按 skemu 分类,一般每个 skemu 下有 3000多条记录,原先我使用了 sqlite3 的随机查询语句:
$query="SELECT * FROM shiti WHERE skemu = " . intval($kemuid) . " order by random() limit 1";
然后在我现在用的电脑上没有感觉到明显迟延,但当我把服务器换到一个 P4 1.8G 512M内存的机器上运行时,感觉数据读取速度非常慢,需要2、3秒才能读出数据。如果每次用户要取一条随机记录,都执行这样一个随机查询的话,瓶颈将会出现在数据库查询过程中,难以想像这样的性能如何来适应众多用户的同时访问。为此,我考虑减少数据库的查询次数,先把记录 id 取出来放到数组中,然后从中再来随机取一条记录,同时存为文件供以后读取,这样以减少数据库查询的次数。
以下函数实现读出 id 集:
static function getIDs($kemuid) { $cachefile="cache/" . $kemuid . ".cache"; $datas=array(); if (!file_exists($cachefile)||time() < (filemtime($cachefile) + 14400)) //缓存不存在或超过4小时 { global $data; //读取 id 集 $query="SELECT sid FROM shiti WHERE skemu = " . intval($kemuid); $res = $data->query($query); while($r = $data->fetchArray($res)) { $datas[]=$r['sid']; } //写入缓存 file_put_contents($cachefile,serialize($datas)); } else { //读出缓存 $fp = fopen($cachefile,'r');//读 $datas = unserialize(fread($fp,filesize($cachefile)));//反序列化,并赋值 } return $datas; }
<span style="font-family:Arial"><span style="color:#548dd4"><span style="color:#366092">调用它的读取随机记录函数:</span></span></span>
static function getRondam($kemuid) { global $data; $ids=self::getIDs($kemuid); $index=rand(0,count($ids)-1); $id=$ids[$index]; $query="SELECT * FROM shiti WHERE sid = " . intval($id); $res = $data->query($query); $r = $data->fetchArray($res); $r['da']=$s; return $r; }
<span style="font-family:Arial">这样比每次执行随机查询快多了,但是还是要比生成一个HTML缓存要慢一点,但那样需要把更多数据暴露给客户端,或是存储更多缓存,我想这已经是一个比较均衡的方案了。</span>
<span style="font-family:Arial"></span>
<span style="font-family:Arial">这个解决办法的要点在于数组的序列化与反序列化,大家应该很容易看得懂。</span>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 문서에서는 끌어서 놓기를 통해 PowerQuery에서 여러 열의 순서를 바꾸는 방법을 보여줍니다. 다양한 소스에서 데이터를 가져올 때 열의 순서가 원하는 순서가 아닌 경우가 많습니다. 열을 다시 정렬하면 분석 또는 보고 요구 사항에 맞는 논리적 순서로 열을 정렬할 수 있을 뿐만 아니라 데이터의 가독성이 향상되고 필터링, 정렬, 계산 수행 등의 작업 속도가 빨라집니다. Excel에서 여러 열을 다시 정렬하는 방법은 무엇입니까? Excel에서 열을 재정렬하는 방법에는 여러 가지가 있습니다. 열 머리글을 선택하고 원하는 위치로 끌기만 하면 됩니다. 그러나 이 접근 방식은 많은 열이 포함된 대규모 테이블을 처리할 때 번거로울 수 있습니다. 열을 보다 효율적으로 다시 정렬하려면 향상된 쿼리 편집기를 사용할 수 있습니다. 쿼리 개선

ReactQuery 데이터베이스 플러그인: 데이터 가져오기 및 내보내기를 구현하는 방법에는 특정 코드 예제가 필요합니다. 프론트 엔드 개발에서 ReactQuery가 널리 적용됨에 따라 점점 더 많은 개발자가 이를 사용하여 데이터를 관리하기 시작했습니다. 실제 개발에서는 데이터를 로컬 파일로 내보내거나 로컬 파일의 데이터를 데이터베이스로 가져와야 하는 경우가 많습니다. 이러한 기능을 보다 편리하게 구현하기 위해서는 ReactQuery 데이터베이스 플러그인을 사용할 수 있습니다. ReactQuery 데이터베이스 플러그인은 일련의 메소드를 제공합니다.

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

이 문서에서는 PowerQuery를 사용하여 데이터를 행으로 분할하는 방법을 소개합니다. 다른 시스템이나 소스에서 데이터를 내보낼 때 데이터가 여러 값을 결합하는 셀에 저장되는 상황이 발생하는 것이 일반적입니다. PowerQuery를 사용하면 이러한 데이터를 행으로 쉽게 분할하여 데이터를 더 쉽게 처리하고 분석할 수 있습니다. 이는 사용자가 Excel의 규칙을 이해하지 못하고 실수로 셀에 여러 데이터를 입력한 경우 또는 다른 소스에서 복사/붙여넣을 때 데이터 형식이 올바르게 지정되지 않은 경우 발생할 수 있습니다. 이 데이터를 처리하려면 분석 또는 보고를 위한 정보를 추출하고 구성하기 위한 추가 단계가 필요합니다. PowerQuery에서 데이터를 분할하는 방법은 무엇입니까? PowerQuery 변환은 단어와 같은 다양한 요소를 기반으로 할 수 있습니다.

데이터 폴더에는 소프트웨어 설정 및 설치 패키지와 같은 시스템 및 프로그램 데이터가 포함되어 있습니다. 데이터 폴더의 각 폴더는 데이터 파일이 파일 이름인 Data 또는 명명된 데이터를 참조하는지 여부에 관계없이 다양한 유형의 데이터 저장 폴더를 나타냅니다. , 모두 시스템이나 프로그램에 의해 사용자 정의된 데이터 파일입니다. 데이터는 데이터 저장을 위한 백업 파일입니다. 일반적으로 meidaplayer, 메모장 또는 워드로 열 수 있습니다.

잘못된 mysql 로드 데이터에 대한 해결 방법: 1. 잘못된 문자가 있는 SQL 문을 찾습니다. 2. 문을 "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE 문자 집합 utf8;"으로 수정합니다.

차이점은 다음과 같습니다. 1. xdata는 일반적으로 독립변수를 나타내고, data는 전체 데이터 세트를 나타냅니다. 2. xdata는 주로 데이터 분석 모델을 구축하는 데 사용되는 반면, data는 데이터 분석 및 통계에 사용됩니다. 회귀 분석, 분산 분석, 예측 모델링의 경우 다양한 통계 방법을 사용하여 데이터를 분석할 수 있습니다. 4. xdata는 일반적으로 데이터 전처리가 필요하며 데이터에는 완전한 원본 데이터가 포함될 수 있습니다.

ReactQuery 데이터베이스 플러그인: 데이터 백업 및 복원을 구현하기 위한 전략, 구체적인 코드 예제가 필요합니다. 소개: 현대 웹 개발에서 데이터 백업 및 복원은 매우 중요한 작업입니다. 특히 ReactQuery와 같은 상태 관리 도구를 사용할 때는 데이터 보안과 안정성을 보장해야 합니다. 이 기사에서는 데이터 백업 및 복원 전략을 구현하기 위한 ReactQuery 기반 데이터베이스 플러그인을 소개하고 구체적인 코드 예제를 제공합니다. ReactQu
