MySQL分库分表数据写入示例:库名从00开始,表名从0000开始(Hash取模)
{"title":"shell脚本mysql分库分表库名从00开始,表名从0000开始 hash取模数据写入示例","description":"这是一个示例的shell脚本,用于将数据根据hash取模的方式写入分库分表中。其中库名从00开始,表名从0000开始。\n\nbash\n#!/bin/bash\n\n# 数据库连接信息\nDB_HOST="localhost"\nDB_USER="root"\nDB_PASSWORD="password"\n\n# 数据库名前缀\nDB_PREFIX="db"\n\n# 表名前缀\nTABLE_PREFIX="table"\n\n# 数据行数\nROW_COUNT=1000\n\n# 分库分表数量\nDB_COUNT=10\nTABLE_COUNT=100\n\nfor ((i=0; i<$ROW_COUNT; i++))\ndo\n # 计算hash值\n hash_value=$(echo $i | md5sum | awk '{print $1}')\n db_index=$((16#$hash_value % $DB_COUNT))\n table_index=$((16#$hash_value % $TABLE_COUNT))\n\n # 构造数据库名和表名\n db_name="${DB_PREFIX}_$(printf "%02d" $db_index)"\n table_name="${TABLE_PREFIX}_$(printf "%04d" $table_index)"\n\n # 插入数据\n query="INSERT INTO $db_name.$table_name (data) VALUES ('$i')"\n mysql -h $DB_HOST -u $DB_USER -p$DB_PASSWORD -e "$query"\ndone\n\necho "Data insertion completed."\n\n\n在上面的脚本中,我们首先定义了数据库连接信息、库名前缀、表名前缀、数据行数和分库分表数量等参数。然后使用一个循环来遍历数据行,计算每行数据的hash值,并根据hash值计算出对应的库名和表名。最后使用mysql命令执行插入数据的操作。\n\n注意,在执行脚本之前需要确保已经正确安装了mysql客户端,并且已经创建了相应的数据库和表。另外,需要将脚本中的DB_HOST、DB_USER和DB_PASSWORD参数替换为实际的数据库连接信息。\n\n希望以上示例能帮助到你!
原文地址: https://www.cveoy.top/t/topic/pxTl 著作权归作者所有。请勿转载和采集!