Elasticsearch 500万索引批量存储php的示例分析
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章给大家分享的是有关Elasticsearch 500万索引批量存储php的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。引用文件dict.txt.cache
千家信息网最后更新 2025年12月03日Elasticsearch 500万索引批量存储php的示例分析
这篇文章给大家分享的是有关Elasticsearch 500万索引批量存储php的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
引用文件
dict.txt.cache.json, pinyin.php 云盘下载地址:
http://pan.baidu.com/s/1c1W6fQC
索引生成测试代码 php
单条索引生成,速度较慢 elastic.php
build();$dict = array_map(function($str){ return str_ireplace('.', '', $str);}, array_keys(json_decode(file_get_contents('./dict.txt.cache.json'), true) ));$a = 1;do { $params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => $a, 'body' => [ 'user_id' => mt_rand(100000000, 2000000000).'@qq.com', 'name' => $tmpname = $dict[mt_rand(1000,360000)], 'py' => \Utils\Pinyin::conv($tmpname), 'phone' => array_rand(array_flip([13,15,17,18])) . mt_rand(100000000, 999999999), 'mail' => substr( str_shuffle( "0123456789abcdefghijklmnopqrstuvwxyz"), 0, mt_rand(5,20) ) . '@' . array_rand( array_flip( [ '163.com', '126.com', 'yeah.net', 'qq.com', 'foxmail.com', 'gmail.com', 'yahoo.com', 'hotmail.com', 'sina.com', 'sina.cn', 'sina.com.cn' ] ) ), 'appoint' => implode( '-', array_map(function() use($dict) { return $dict[mt_rand(1000,360000)] . (mt_rand(0,100) > 60 ? $dict[mt_rand(1000,360000)] : '') . (mt_rand(0,100) > 80 ? $dict[mt_rand(1000,360000)] : '');}, array_pad([], mt_rand(2,5), '') ) ), ] ]; //创建索引 $response = $client->index($params); $a = isset($a) ? ++$a : 1; $a % 50 === 0 ? print(($b = isset($b) ? ++$b : 1).'%'.PHP_EOL) : '';} while ($a <= 5000);$end = "结束时间:" . time() . PHP_EOL;echo $end;echo "耗时:" . ($end - $start);批量索引生成 elasticBulk.php
setRetries(10)//重试次数,默认重试次数为集群节点数 ->setConnectionPool($connectionPool) ->setSelector($selector) ->build();$dict = array_map(function($str){ return str_ireplace('.', '', $str);}, array_keys(json_decode(file_get_contents('./dict.txt.cache.json'), true) ));echo $start = "开始时间:" . time() . PHP_EOL;createData($client, $dict);echo $end = "结束时间:" . time() . PHP_EOL;echo "耗时:" . $end - $start;function createData($client, $dict){ $bulk = array('index'=>'my_index4','type'=>'my_type4'); //bulk批量生成 for($j = 0;$j <= 99; $j++) { for($i = $j * 50000 + 1; $i <= $j * 50000 + 50000; $i ++) { $bulk['body'][]=array( 'index' => array( '_id'=>$i ), 'type' => 'blocking' ); $bulk['body'][] = [ 'user_id' => mt_rand(100000000, 2000000000).'@qq.com', 'name' => $tmpname = $dict[mt_rand(1000,360000)], 'py' => \Utils\Pinyin::conv($tmpname), 'phone' => array_rand(array_flip([13,15,17,18])) . mt_rand(100000000, 999999999), 'mail' => substr( str_shuffle( "0123456789abcdefghijklmnopqrstuvwxyz"), 0, mt_rand(5,20) ) . '@' . array_rand( array_flip( [ '163.com', '126.com', 'yeah.net', 'qq.com', 'foxmail.com', 'gmail.com', 'yahoo.com', 'hotmail.com', 'sina.com', 'sina.cn', 'sina.com.cn' ] ) ), 'appoint' => implode( '-', array_map(function() use($dict) { return $dict[mt_rand(1000,360000)] . (mt_rand(0,100) > 60 ? $dict[mt_rand(1000,360000)] : '') . (mt_rand(0,100) > 80 ? $dict[mt_rand(1000,360000)] : '');}, array_pad([], mt_rand(2,5), '') ) ), ]; } $client->bulk($bulk); //进度统计 print($j + 1).'%'.PHP_EOL; }}单节点测试结论
1.单条性能约100条/s , 批量性能约5000条/s
2.单节点批量处理一次性bulk数据上限35万,否则报错:PHP Fatal error: Uncaught exception 'Elasticsearch\Common\Exceptions\NoNodesAvailableException' with message 'No alive nodes found in your cluster
3. 500万全真模拟数据占空间2G
4.查询性能:
第一次稍慢,但在1秒以内
第二次极速
感谢各位的阅读!关于"Elasticsearch 500万索引批量存储php的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
索引
生成
性能
时间
示例
分析
存储
内容
数据
更多
次数
篇文章
节点
测试
不错
实用
一次性
上限
代码
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
icgc 数据库
数据库文件会感染病毒吗
常用的两种网络安全模型
php调用数据库图片
在软件开发阶段技术人员水平
显示远程访问连接管理服务器
魔兽正式服部落服务器推荐
烟草对经济的影响数据库
高性能游戏服务器
网络安全主要干些什么
天津安全服务器散热风扇厂
武冈电力软件开发
数据库的验证模式
黄浦区营销网络技术哪个好
3g无线网络技术特点
嘉兴电子网络技术市场价格
软件开发协议中英版
即墨区安卓软件开发哪家好
驻场软件开发人员要求
服务器hdm是不是管理口
登录id出现连接服务器失败
广州要玩娱乐网络技术有限公司
远程连接到服务器反复断开
数据库技术汽车表结构
学校数据库有什么好处
dm数据库 用户创建失败
网络安全宣传周取得的实效
数据库中的r-s
无线传感网络技术与应用
联想服务器关机快捷键