同事 Struct Chen 的 Amoeba For MySQL 项目已经 出来不短时间了,可一直没有时间好好体验,最近一直在做一些软件和硬件的功能以及性能相关的测试工作,Amoeba For MySQL自然也将被列入计划之内。 对 Amoeba For MySQL 的测试到目前位置主要还是功能方面的测
同事 Struct Chen 的 Amoeba For MySQL 项目已经 出来不短时间了,可一直没有时间好好体验,最近一直在做一些软件和硬件的功能以及性能相关的测试工作,Amoeba For MySQL自然也将被列入计划之内。
对 Amoeba For MySQL 的测试到目前位置主要还是功能方面的测试,配置了一套四台机器的环境:
Server A: Amoeba Server
Server B: MySQL Master
Server C: MySQL Slave1
Server D: MySQL Slave2
软件环境:RHEL5.2 (X86_64),JAVA 1.5.0_16, Amoeba For MySQL 0.31
测试功能:
1、读写分离
2、数据垂直切分
3、数据水平切分
amoeba.xml配置如下:
?xmlversion="1.0"encoding="gbk"?>
!DOCTYPEamoeba:configurationSYSTEM"amoeba.dtd">
amoeba:configurationxmlns:amoeba="http://amoeba.meidusa.com/">
server>
propertyname="port">8066property>
propertyname="ipAddress">10.0.38.21property>
propertyname="readThreadPoolSize">500property>
propertyname="clientSideThreadPoolSize">500property>
propertyname="serverSideThreadPoolSize">500property>
propertyname="netBufferSize">200property>
propertyname="tcpNoDelay">trueproperty>
propertyname="user">userproperty>
propertyname="password">passwordproperty>
server>
connectionmanagerlist>
connectionmanagername="defaultManager">
classname>com.meidusa.amoeba.net.AuthingableConnectionManagerclassname>
connectionmanager>
connectionmanagerlist>
dbserverlist>
dbservername="master">
factoryconfig>
classname>com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactoryclassname>
propertyname="manager">defaultManagerproperty>
propertyname="port">3306property>
propertyname="ipAddress">10.0.38.37property>
propertyname="schema">testproperty>
propertyname="user">rootproperty>
propertyname="password">passwordproperty>
factoryconfig>
poolconfig>
classname>com.meidusa.amoeba.net.poolable.PoolableObjectPoolclassname>
propertyname="maxActive">500property>
propertyname="maxIdle">200property>
propertyname="minIdle">10property>
propertyname="minEvictableIdleTimeMillis">600000property>
propertyname="timeBetweenEvictionRunsMillis">600000property>
propertyname="testOnBorrow">trueproperty>
propertyname="testWhileIdle">trueproperty>
poolconfig>
dbserver>
dbservername="slave1">
factoryconfig>
classname>com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactoryclassname>
propertyname="manager">defaultManagerproperty>
propertyname="port">3306property>
propertyname="ipAddress">10.0.38.22property>
propertyname="schema">testproperty>
propertyname="user">rootproperty>
propertyname="password">passwordproperty>
factoryconfig>
poolconfig>
classname>com.meidusa.amoeba.net.poolable.PoolableObjectPoolclassname>
propertyname="maxActive">500property>
propertyname="maxIdle">200property>
propertyname="minIdle">10property>
propertyname="minEvictableIdleTimeMillis">600000property>
propertyname="timeBetweenEvictionRunsMillis">600000property>
propertyname="testOnBorrow">trueproperty>
propertyname="testWhileIdle">trueproperty>
poolconfig>
dbserver>
dbservername="slave2">
factoryconfig>
... ...
factoryconfig>
poolconfig>
... ...
poolconfig>
dbserver>
dbservername="virtualSlave"virtual="true">
poolconfig>
classname>com.meidusa.amoeba.server.MultipleServerPoolclassname>
propertyname="loadbalance">1property>
propertyname="poolNames">slave1,slave2property>
poolconfig>
dbserver>
dbserverlist>
queryrouter>
classname>com.meidusa.amoeba.mysql.parser.MysqlQueryRouterclassname>
propertyname="ruleConfig">${amoeba.home}/conf/rule.xmlproperty>
propertyname="functionConfig">${amoeba.home}/conf/functionMap.xmlproperty>
propertyname="ruleFunctionConfig">${amoeba.home}/conf/ruleFunctionMap.xmlproperty>
propertyname="LRUMapSize">1500property>
propertyname="defaultPool">masterproperty>
propertyname="writePool">masterproperty>
propertyname="readPool">virtualSlaveproperty>
propertyname="needParse">trueproperty>
queryrouter>
amoeba>
rule.xml配置:
?xmlversion="1.0"encoding="gbk"?>
!DOCTYPEamoeba:ruleSYSTEM"rule.dtd">
amoeba:rulexmlns:amoeba="http://amoeba.meidusa.com/">
tablerulename="test_horiz"schema="test"defaultPools="master">
rulename="rule1">
parameters>IDparameters>
expression> ![CDATA[ ID 100000000]]>expression>
defaultpools>masterdefaultpools>
readpools>slave1readpools>
writepools>masterwritepools>
rule>
rulename="rule2">
parameters>IDparameters>
expression> ![CDATA[ IDbetween100000001and200000000 ]]>expression>
defaultpools>masterdefaultpools>
writepools>master2writepools>
readpools>slave2readpools>
rule>
rulename="rule3">
parameters>IDparameters>
expression> ![CDATA[ ID> 200000000 ]]>expression>
defaultpools>masterdefaultpools>
rule>
tablerule>
tablerulename="master"schema="test"defaultPools="master"/>
tablerulename="slave1"schema="test"defaultPools="slave1"/>
tablerulename="slave2"schema="test"defaultPools="slave2"/>
tablerulename="master"schema="t"defaultPools="master"/>
amoeba>
由于第一步主要还只是测试读写分离与数据的垂直切分,所以水平切分的规则设置的很简单,仅仅是按照ID的范围设置简单的规则。而设置一些更为复杂的规则。
总体测试效果还是比较满意的,预期的功能都全部正常,当然所用于测试的SQL语句也大都比较简单,主要还是根据当前工作中遇到的一些SQL。
这次测试没有进行性能测试,等后面再找时间测试一下,不知道有没有哪位朋友已经做过了相应的性能测试没?性能测试之后就要开始规划应用到某些应用上面去了
原文地址:Amoeba For MySQL 功能测试让人满意, 感谢原作者分享。

掌握添加MySQL用戶的方法對於數據庫管理員和開發者至關重要,因為它確保數據庫的安全性和訪問控制。 1)使用CREATEUSER命令創建新用戶,2)通過GRANT命令分配權限,3)使用FLUSHPRIVILEGES確保權限生效,4)定期審計和清理用戶賬戶以維護性能和安全。

chosecharforfixed-lengthdata,varcharforvariable-lengthdata,andtextforlargetextfield.1)chariseffity forconsistent-lengthdatalikecodes.2)varcharsuitsvariable-lengthdatalikenames,ballancingflexibilitibility andperformance.3)

在MySQL中處理字符串數據類型和索引的最佳實踐包括:1)選擇合適的字符串類型,如CHAR用於固定長度,VARCHAR用於可變長度,TEXT用於大文本;2)謹慎索引,避免過度索引,針對常用查詢創建索引;3)使用前綴索引和全文索引優化長字符串搜索;4)定期監控和優化索引,保持索引小巧高效。通過這些方法,可以在讀取和寫入性能之間取得平衡,提升數據庫效率。

ToaddauserremotelytoMySQL,followthesesteps:1)ConnecttoMySQLasroot,2)Createanewuserwithremoteaccess,3)Grantnecessaryprivileges,and4)Flushprivileges.BecautiousofsecurityrisksbylimitingprivilegesandaccesstospecificIPs,ensuringstrongpasswords,andmonitori

tostorestringsefliceflicyInmySql,ChooSetherightDataTypeBasedyOrneOrneEds:1)USEcharforFixed-LengthStstringStringStringSlikeCountryCodes.2)UseVarcharforvariable-lengtthslikenames.3)USETEXTCONTENT.3)

選擇MySQL的BLOB和TEXT數據類型時,BLOB適合存儲二進制數據,TEXT適合存儲文本數據。 1)BLOB適用於圖片、音頻等二進制數據,2)TEXT適用於文章、評論等文本數據,選擇時需考慮數據性質和性能優化。

No,youshouldnotusetherootuserinMySQLforyourproduct.Instead,createspecificuserswithlimitedprivilegestoenhancesecurityandperformance:1)Createanewuserwithastrongpassword,2)Grantonlynecessarypermissionstothisuser,3)Regularlyreviewandupdateuserpermissions

mySqlStringDatatAtatPessHouldBechoseBasedondatActarActeristicsAndusecases:1)USEcharforFixed lengthStstringStringStringSlikeCountryCodes.2)usevarcharforvariable-lengtthslikeLikenames.3)usebarnionororvarinyorvarinyorvarybinarydatalgebenedaTalgeextocrabextrapon.4)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

WebStorm Mac版
好用的JavaScript開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具