Kev*_*vin 8 mysql wamp phpmyadmin
所以我贴了这个!昨天得到了一个完美的答案,需要先运行此代码:ALTER TABLE mytable AUTO_INCREMENT = 10000001;
我运行了好几次,但是在几个小时不工作后重新启动了WAMP.过夜(12小时)后,代码仍未运行.
我想知道我的数据库表大小是否超过了mysql或我的计算机或两者的限制.
但是,我有一种偷偷摸摸的怀疑,正确的索引或其他因素可能会对我的表现产生很大的影响.我知道2000万行是很多行,但它太多了吗?
我对索引知之甚少,除了它们很重要.我试图将它们添加到名称和州字段中,我相信我成功了.
顺便说一下,我正在尝试添加一个唯一的ID字段,这就是我昨天的帖子.
所以,问题是:MySql范围之外的2000万行?如果没有,我是否缺少一个索引或其他一些有助于更好地使用这2000万行的设置?我可以在所有列上放置索引并使其超快吗?
一如既往,提前谢谢......
以下是规格:
我的电脑是XP,运行WAMPSERVER,Win32 NTFS,Intel Duo Core,T9300 @ 2.50GHz,1.17 GHz,1.98 GB或RAM
DB:1表,2000万行表的大小是:数据4.4 Gigs,Indexes 1.3 Gigs,Total 5.8 Gigs
索引在"BUSINESS NAME"和"STATE"字段中设置
表字段是这样的:
`BUSINESS NAME` TEXT NOT NULL,
`ADDRESS` TEXT NOT NULL,
`CITY` TEXT NOT NULL,
`STATE` TEXT NOT NULL,
`ZIP CODE` TEXT NOT NULL,
`COUNTY` TEXT NOT NULL,
`WEB ADDRESS` TEXT NOT NULL,
`PHONE NUMBER` TEXT NOT NULL,
`FAX NUMBER` TEXT NOT NULL,
`CONTACT NAME` TEXT NOT NULL,
`TITLE` TEXT NOT NULL,
`GENDER` TEXT NOT NULL,
`EMPLOYEE` TEXT NOT NULL,
`SALES` TEXT NOT NULL,
`MAJOR DIVISION DESCRIPTION` TEXT NOT NULL,
`SIC 2 CODE DESCRIPTION` TEXT NOT NULL,
`SIC 4 CODE` TEXT NOT NULL,
`SIC 4 CODE DESCRIPTION` TEXT NOT NULL
Run Code Online (Sandbox Code Playgroud)
一些答案:
2000万行完全在MySQL的能力范围内.我在一个表中工作的数据库超过5亿行.重组表可能需要数小时,但普通查询只要它们由索引辅助就不是问题.
您的笔记本电脑已经过时,并且不能用作高级数据库服务器.进行表重组需要很长时间.较少的内存和通常较慢的笔记本电脑磁盘可能会限制您.您可能也使用MySQL的默认设置,这些设置适用于非常旧的计算机.
我不建议TEXT为每列使用数据类型.TEXT大多数这些专栏都没有理由需要.
不要在每个列上创建索引,尤其是在您坚持使用TEXT数据类型的情况下.TEXT除非定义前缀索引,否则甚至无法索引列.通常,选择索引以支持特定查询.
基于上述内容,您可能还有许多其他问题,但在单个StackOverflow帖子中有太多内容无法涵盖.如果您要使用数据库,您可能需要接受培训或阅读书籍.
我推荐高性能MySQL,第2版.
重新提出你的后续问题:
对于MySQL调优,这里是一个很好的起点:http: //www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/
许多ALTER TABLE操作导致表重组,这意味着基本上锁定表,使用所应用的更改制作整个表的副本,然后重命名新旧表并删除旧表.如果表非常大,这可能需要很长时间.
TEXT数据类型最多可以存储64KB,这对于电话号码或状态来说是过度的.我会使用CHAR(10)作为典型的美国电话号码.我会将CHAR(2)用于美国州.通常,使用最紧凑和节俭的数据类型,它支持给定列中所需的数据范围.