1. 如果要支持集群,就最好不要用太多存储过程,直接用查询来写!
2. 支持集群的话,用MySQL代理,做到读写分离!
3. 尽量采用单表模式
4. 单表如果数据量很大,请务必使用分区,可以考虑基于时间分区,分区以后维护的时候,可以多个分区同时操作!
例如:
for i in 11 10 09 01 02 03 04 05 06 07 08 ; do ./update_table.sh $i APP_NETWORK_EXCEPTION & done;
上面可以对APP_NETWORK_EXCEPTION表(以月分区的),可以同时开11个线程来UPDATE不同分区的数据,效率很高
// update_table.sh内容如下:
for i in $1
do
for j in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
do
for k in 00 05 08 09 10 11 12 14 15 16 17 19 20 23
do
sql="use table; UPDATE table.$2 A SET field = aaaa
WHERE EVENT_TIME BETWEEN \"2015-$i-$j\" AND \"2015-$i-$j $k:59:59\" AND CITY IS NULL;"
mysql -uroot -ppassword -e "$sql"
sleep 1
done
done
done