首页 >> 民生法规

的优化和索引范式和非范式计划

民生法规  2021-08-24 17:42 字号: 大 中 小

Schema的优化和索引 - 范式和非范式6

当使用缓存和汇总表,必须要决定是否要实时维护数据或者周期性重建数据。哪种更好完全取决与你的应用程序,但是周期性重建数据不仅仅可以节省资源,还可以使结果存放在更有效率的表中,这些表不会碎片并且含有完全排序的索引。

当你重建汇总和缓存表的时候,在操作的时候你常常需要它们的数据保持可见。你可以使用“shadow table”(影像表)来实现。当你已经创建它之后,你可以使用原子性的重命名来交换这些表。举个例子,如果你需要重建my_summary,你能创建my_summary_new,填充数据,把它和真正的表作交换。

mysql DROP TABLE IF EXISTS my_summary_new, my_summary_old;

mysql CREATE TABLE my_summary_new LIKE my_summary;

-- populate my_summary_new as desired

mysql RENAME TABLE my_summary TO my_summary_old, my_summary_new TO my_summary;

在赋予新建表my_summary名之前,如果你把my_summary重命名为my_summary_old,你就可以保存这个表老的版本直到下次这个表的重建。如果新表出现问题,你也可以用旧的来替换。

计数表(Counter tables)

并承担相应法律。本所及经办律师同意将本法律意见书随贵公司本次临时股东大会决议一并公告 一个应用程序在一个表中存放计数字段,当更新计数字段的时候,会遇到并发问题。这些表在web应用程序中很常见。你能使用它们来缓存用户的好友数,文件的下载数等等。一般来说,创建一个单独的表来存放这些计数是个好的主意,这样做能使它更小更快。使用单独的表,可以避免无效的查询缓存并且让你使用更多的高级技术。

为了让例子更简单,假使你有个包含一列的计数表。来记录你站的点击量。

mysql CREATE TABLE hit_counter (

-    cnt int unsigned not null

- ) ENGINE=InnoDB;

事后吃什么食物避孕
济南白癜风哪家好
合肥哪家医院妇科好
推荐资讯