如何优化一个有100万条记录的数据库表?

如何优化一个有100万条记录的数据库表?,第1张

可以采取两个手段: 

第一:将数据库表拆分到不同的库中,比如 tblMEMBER 就可以拆分到 DB1 与 DB2 中去。 实际上,可以拆分到 DB001 ... DB100 甚至更多的库中间去。 DB1 与 DB2 最好不在一块硬盘上。

第二:如果更大量级的数据,则最好拆分到不同的数据库服务器中去。 数据库的拆分带来的是查询等 *** 作的复杂性。简单地可以通过 hash 或者 按序号 匹配不同的数据库。复杂一些,应该设置一个独立的应用服务器(软件)协调其中的 *** 作。

这个要看你这个表的字段是怎么设计的,有没有text或(n)varchar(max)之类的大数据类型,如果都是数字型,那要比字符型快n多,普通的提速建索引,但不可能每个字段都建一个索引吧,除非你的表只用来查询,不做其他新增、删除、修改 *** 作。

事情都没有绝对的,要具体情况具体分析。

要查询大量的文本类型的话,如新闻内容、标题等,数据库自身有“全文索引”,要么就采用第三方搜索引擎(比如:lucene),把整个表内容不在数据库搜,这样效率最高。

你好,你可以根据条件去添加索引,例如:

一、

所有mysql索引列类型都可以被索引,对来相关类使用索引可以提高select查询性能,根据mysql索引数,可以是最大索引与最小索引,每种存储引擎对每个表的至少支持16的索引。总索引长度为256字节。

mysim和innodb存储引擎的表默认创建索引都是btree索引,目前mysql还不支持函数索引,但支持前缘索引,对字段前N个字符创建索引

二、mysql创建索引语法

Create [unioun|fulltext|spatial] index indexname[using indextype] on tablename( tablenamecol)

index_col_name:

col_name[ (length)][asc |desc]

如果你创建索引时搞错了,需要修改mysql索引我们可以用alert来修改索引,语法与create index创建索引差不多,我们就不说了,可以查看相关手册。

下面我们来看一个关于mysql创建索引实例教程。

mysql>create index cityname on city(city(2))

Query Ok,600 rows affected (0.26 sec)

Records :600 Duplicates:0 Warings 0:

我们现在来以city为条件进行查询,如下面。

->explain select * from city where city ='www.111cn.net' G

id:1

......

possible_keys:cityname

key:cityname

好了,现在我们来看看mysql删除索引等实例

Drop indexname on tablename

实例,我现在要删除刚才创建city索引

>drop index cityname on city

Query ok, .....

不过通常对百万级数据的查询或者其他 *** 作,都改换其他的大型的数据库了,希望能帮到你,望采纳。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9633611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存