一个配置表优化的想法

今天下班在班车上想了一个关于配置表存储的小优化,起因是早上的时候发现了一个bug,这个bug是由于在运行时动态更改了一个列表配置导致的。

其实关于这种运行时“偷偷”改配置的问题我之前也有考虑过,这种应该是一不小心就会写出的,这不终于都出了一个。

至于如何预防这种问题,我认为在python里面似乎也没有什么好的解决方法,因为它不像c++有const语义,但有一个稍尽人事的预防措施就是把列表型的配置读成元组(tuple)。而由此衍生出的一个想法便是:把配置表中所有的列表型配置都读成共享的元组,即只要是其内容一致的那么内存中就只会存一份,类似于string intern

在将这个想法付诸实践之前,有一些问题是需要搞清楚的。因为如果我想要做的,python都帮我做的七七八八了,那我就不需要在此花费无用的精力了。因此首要问题是,python的元组是否有共享机制?以及其对何种元组是会共享的?

显然不可能是所有的元组都使用共享策略,但我知道空的元组是会被共享的。

时间: 2024-10-14 23:01:51

一个配置表优化的想法的相关文章

hibernate关联管理配置表

用hibernate开发时,建好主表后发现有一些配置属性需要添加,而有不想更改主表结构,这是只需要建一个配置表,在主表的model配置中配置上配置表的key和value就行,如: 主表:CREATE TABLE `SKILL_GROUP` (                                                                                           `ID` int(11) NOT NULL AUTO_INCREMENT, 

数值设计表与配置表结合优化问题解决思路

起因 在日常的数值设计及调测工作中,需要将设计表中调整过的数值频繁更新到配置表中,但由于两表的设计目的不一(设计表主要用于根据需要的字段设计数值以及之后的数值调整验证:配置表主要用于字段的数据配置,程序需根据配置表中字段数据读入到游戏中,所以还承担着配置表到配置文件(.csv / .xml / .sql)的输出,因此配置表中的字段最为完整),导致两表实际的设计和操作不同,这就引发了一系列问题. 核心问题 配置表中的部分字段是设计表所不需要的 配置表的数据格式规范,而设计表大多散乱(不许过于考虑格

详解MySQL大表优化方案

当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的.而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量: 字段 尽量使用TINYINT.SMALLINT.MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED VARCHAR的

针对MySQL大表优化方案

详解MySQL大表优化方案 (1).字段 (2).索引 (3).规范查询SQL (4).存储引擎 (5).mysql配置参数优化 (6).mysql读写分离 (7).分区和分表 单表优化: 当单表的数据不是一直在暴增,不建议使用拆分,拆分会带来逻辑,部署,运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的.而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量 (1).字段 l 尽量使用TINYINT.SMALLINT

MySQL 大表优化方案探讨

当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的.而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量: 字段 尽量使用TINYINT.SMALLINT.MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED VARCHAR的

项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库

作者:泥沙砖瓦浆木匠 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 如果我的帮到了你,是否乐意捐助一下或请一杯啤酒也好呢?有你支持,干的更好~ 点这参与众筹 我的支付宝:13958686678 一. 前言 泥瓦匠又和大家见面了,最近两天我在Code Review ,顺便代码小小的Refactoring(重构)下.先了解这个项目吧,这次解决的是数据源配置优化.因为这web项目中配置数据源的地方很多.例如JDBC要配置数据源,Mybatis要配置数据源,Quartz定时任务要配

配置文件和配置表定期备份小工具

现在维护的配置文件/表都是人手工备份,上次某机器宕机,想在别的机器上拉起应用,去找备份的时候,发现最近的备份还是去年的,因此有了这个想法写这么一个小工具才进行定期备份.其实细极思恐,每天备份一下还是很有必要的,出事了,也能找到是哪天开始的不是? 设计的思路还是先把哪些机器的文件.哪个数据库的表需要备份,放入数据库中,然后弄一个shell,在某个机器上启动这个shell,使用ftp去备份配置文件,使用exp去dmp数据库文件,完成备份. 首先是数据库设计部分,需要两张表: "机器表":

MySQL必须调整的10项配置mysql优化

from:http://www.opsers.org/server/10-configuration-mysql-mysql-must-adjust-optimization.html 大多数配置能在运行时使用SET GLOBAL改变.这是非常便捷的方法它能使你在出问题后快速撤销变更.但是,要永久生效你需要在配置文件里做出改动. 一个变更即使重启了MySQL也没起作用?请确定你使用了正确的配置文件.请确定你把配置放在了正确的区域内(所有这篇文章提到的配置都属于 [mysqld]) 服务器在改动一

大型网站的 HTTPS 实践(三)——基于协议和配置的优化

1 前言 上文讲到HTTPS对用户访问速度的影响. 本文就为大家介绍HTTPS在访问速度,计算性能,安全等方面基于协议和配置的优化. 本文最早发表于百度运维部官方博客 2 HTTPS访问速度优化 2.1 Tcp fast open HTTPS和HTTP使用TCP协议进行传输,也就意味着必须通过三次握手建立TCP连接,但一个RTT的时间内只传输一个syn包是不是太浪费?能不能在syn包发出的同时捎上应用层的数据?其实是可以的,这也是tcp fast open的思路,简称TFO.具体原理可以参考rf