MYSQL优化一个137000行的表
-
11-09-2019 - |
题
我正在尝试优化 红矿 在数据库变得太痛苦之前;更改(基本上是所有 SVN 更改的日志)为 137000 行(左右),并且该表设置为基本默认设置。无钥匙包装等。
表格如下
ID int[11] Auto Inc (PK)
changeset_id int[11]
action varchar[1]
path varchar[255]
from_path varchar[255]
from_revision varchar[255]
revision varchar[255]
branch varchar[255]
指数:主要(ID),
Changeset_id 设置为 INDEX BTREE
全部基于 latin1 字符集,基于以下信息 http://forge.mysql.com/wiki/Top10SQLPerformanceTips
表引擎是Innodb Pack键设置为默认(只有包装char varchar)
所有其他选项均已关闭。
优化这个的最佳方法是什么?(小节截断;o))
其他提示
这完全取决于你的读取和写入的特性,即你正在做的查询,以及多久你写的吧。
,以优化用于写入的方法是最小化的索引的数量。理想情况下,你用什么在MS SQL服务器将是“聚集索引”与单调递增密钥,以确保你写新记录表中的末尾,你写的没有其他单独的索引。更重要的是,即使是跳过DBMS和写入某种普通的旧的日志文件,如果你不需要任何交易能力。
有关查询,嗯,这能得到像你一样复杂。千万记住,不过,如果你需要从表中数据的任何显著量查询(即,它不仅仅是查找基于一个关键的一条记录),表扫描可能不是一件坏事。一般来说,如果您正在检查的表的内容超过3-5%,表扫描会非常快。再次,为此,一个普通的旧文件可能比一个DBMS更快。
如果您有以优化双方,考虑优化写入,然后在你优化查询定期制作副本,做查询对副本。
不隶属于 StackOverflow