查询数据太慢超过一分钟

绘图的时候:显示数据
数据量有五万多,最后查出来的数据是600多条
没有建索引->构建索引
索引列的选择:
索引就是选择要查的那几个列
索引的顺序:
最左侧是最重要的,应该根据字段的全局基数和选择性来确定。

  1. SELECT
  2.   COUNT(DISTINCT accountId) / COUNT(*) AS accountId_sel,
  3.   COUNT(DISTINCT userName) / COUNT(*) AS userName_sel,
  4.   COUNT(*)
  5. FROM
  6.   dc_listing

使用索引之后的查询时间还是有7.2秒,因为使用了外排序,如果将外排序去除应该还可以缩短时间

死锁问题

MySQL有死锁检测,官方说的是选择杀死小事务,即:增删改语句少的事务。

MySQL的InnoDB解决了幻读问题

当前读情况下是没有幻读问题的
快照读

复制一张表

  • mysqldump
  • insert … select
  • csv文件

MySQL性能瓶颈,主要是IO问题如何解决

生产库:减少数据落到磁盘的次数,多次数据一次提交