MYSQL数据库的优化使用索引[关闭](MYSQL database optimization us

2019-08-17 08:12发布

我的工作LearnBiz模拟 ,自筹资金开办这使得模拟管理教育领域。

(一)我们的网站是目前餐饮业约16K的人。 目前,数据库的大小是30 MB具有总共约90的表和每个表可以具有5至50列之间的任何地方。 我们数据库中的所有表,已多次的插入,删除或updations新行。 但没有列被添加过。 它创建使用索引技术的任何问题? 有一对夫妇其他论坛和视频的,这表明即使插入或删除行将使索引没用!

(二)在我们的网站最大的工作是MySQL的查询与200-800线之间不等的代码行的一些处理。 几乎95%+的我们的查询有where子句,以针点所需的行多次平等。 如果我理解正确的话,那么使用索引可以帮助我们更快多次加快这一进程?

(三)有一些模拟该过程中,每分钟许多参与者的数据。 对于这样的模拟,我们目前无法在同一时间,以满足甚至50人参加。 将采用索引帮助这种模拟承担更多的用户?

(d)我们目前拥有的服务器是与GoDaddy一个VDS(成本每年约为400 $)。 为了使我们的网站更快,这将使意义为我们转移到DDS(花费大约每年3000 $),或得到的东西像TokuDB? 有没有办法来判断当前的系统,即服务器+数据库+编码的用户容量?

Answer 1:

(一)这些论坛和视频是毫无价值的,不会重复半真半假(对了,还有一个开销中的索引时,它只是性能增益通常远远超过了很多次)

(b)在大多数情况下,虽然要小心创建实际上是有用的索引。 MySQL文档有一个关于如何做到这一点整章 (一般你会想看看整个优化章太

(三)请确保您的基准不是模拟太拥挤的交通。 在时间50个的真实用户将不产生50个连接每个第二例如。 同样,你的表现应该实现指数和优化你的查询后增加

(d)更好的资源再多的帮助,如果你的数据库服务器配置不正确(你使用查询缓存?你让MySQL使用足够的内存来保存表中存储?等等)

综上所述:了解你的MySQL服务器的基本配置,所以它可以利用你的资源有效(默认值通常不够好),也看看手册中的Optimization章节。



Answer 2:

关于指标的问题,指数不仅是可取的,但它需要 “加快”的事情。 据我所知(在“外行”术语),索引的功能是加快数据的搜索和回收率在表的内部。

理由使用索引:

  1. 识别在每个表唯一的每行(主键是索引,毕竟)
  2. 该指标排序(即使数据不)
  3. 加快搜索和过滤器:索引使数据恢复速度更快,因为它“认为”数据表中的位置上(它“精确定位”你要恢复的数据)。 此外,它让我们很容易数据库引擎来过滤数据(它总是更快,更简单过滤比加扰数据排序的数据)
  4. 优化使用相关的表时,数据恢复的方式:每一个外键必须以加快涉及主要的查询索引 - 外键关系

一些“拇指规则”我用它来决定哪些领域需要索引:

  • 每一个主键建立索引( 明显的一个:主键必须是唯一的,而不是为null)
  • 每一个外键必须是索引(为了使主 - 外键关系有效)
  • 关于这一点我需要执行搜索每个数字或日期字段必须被索引。 这就是说,我尽量避免double (或任何其他浮点数字类型)字段建立索引,因为它们generaly使用并不意味着要搜索存储值。
  • 每一个charvarchar上,我需要执行的搜索字段必须被索引。 尽量避免在索引的text字段,因为他们可以在他们持有非常大的价值。
  • 避免索引二进制( blob )领域......这没有任何意义
  • 不要爱上索引一切的诱惑。 把你的时间来决定哪些领域必须建立索引和字段必须不被索引。


文章来源: MYSQL database optimization using indexing [closed]