mysql 查询很慢原因 mysql为什么数据量大查询缓慢

MySQL删除千万级数据量导致的慢查询优化这种长事务的运行会导致你删除时 , 仅只是对数据加了一个删除标记,事实上并没有彻底删除 。此时你若和长事务同时运行的其它事务里再查询,他在查询时可能会把那上千万被标记为删除的数据都扫描一遍 。
数据千万级别之多,占用的存储空间也比较大,可想而知它不会存储在一块连续的物理空间上,而是链式存储在多个碎片的物理空间上 。可能对于长字符串的比较,就用更多的时间查找与比较,这就导致用更多的时间 。
假如没有索引的话,explain会显示返回查询全表的数据自然会很慢了 。假如用到了索引的话,可以快速的找到需要查询的区间里的数据,往往需要查询的数据量是全表的1/100 , 1/1000,那么这时候花费的时间就是1/100 , 1/1000了 。
设置 my.cnf 中的long-query-time 和log-slow-queries 记录服务器那些SQL执行速度比较慢 根据上述情况查看对对应的SQL语句进行优化 优化服务器性能,用RAID5(SAN),加内存本身的升级,提高硬盘I/O性能 。
使用慢查询日志去发现慢查询 。使用执行计划去判断查询是否正常运行 。总是去测试你的查询看看是否他们运行在最佳状态下 –久而久之性能总会变化 。避免在整个表上使用count(*),它可能锁住整张表 。
php+mysql在数据库里数据大的话查询很慢【mysql 查询很慢原因 mysql为什么数据量大查询缓慢】对查询进行优化 , 应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引 。
优化SQL语句(让SQL语句更合理一些) 。优化数据库字段类型 。(能用其他的尽量不要用VCHAR)建立储存过程 。
由于在参与的实际项目中发现当mysql表的数据量达到百万级时 , 普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时 , 其查询速度简直无法容忍 。
打开my.ini,如果是Linux服务器,那就是my.conf;然后在[mysqld]选项下面添加:skip-name-resolve 这个选项的意思是:禁用DNS解析,连接速度会快很多 。
数据千万级别之多,占用的存储空间也比较大,可想而知它不会存储在一块连续的物理空间上 , 而是链式存储在多个碎片的物理空间上 。可能对于长字符串的比较,就用更多的时间查找与比较,这就导致用更多的时间 。
首先换数据库 , MySQL处理这个数量级数据比较吃力 。
mysql,有一张表里面已经有几千万条数据了,网页访问时极其缓慢,如何提高...1、查看建立索引前面的返回的结果 。假如没有索引的话,explain会显示返回查询全表的数据自然会很慢了 。
2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引 。
3、将单张表的数据切分到多个服务器上去,每个服务器具有相应的库与表,只是表中数据集合不同 。水平分库分表能够有效的缓解单机和单库的性能瓶颈和压力,突破IO、连接数、硬件资源等的瓶颈 。
4、\ 对于 information_schema 中的元数据表,执行计划不能提供有效信息 。\ 通过查看 MySQL 改写后的 SQL , 我们猜测了优化器发生了误判 。\ 我们增加了 hint,指导 MySQL 正确进行优化判断 。
5、索引并不是越多越好 , 索引固然可 以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定 。
mysql数据量上十万条后,查询慢导致服务器卡有什么解决办法1、那么你这时候需要在factdata表上建立(user,module,dtime)的联合索引 。
2、十万条数据已经够多了,通常最好的办法就是创建索引,创建索引的命令: CREATE INDEX index_name ON table_name(index_col_name,...); index_name:这是索引的创建名称,你自己命一个名称 。
3、将查询语句放到服务器命令行去跑,如果慢,则可以考虑通过添加索引来提高查询速度 。如已有索引或添加索引后查询速度仍未改善 , 查看语句执行计划中 , 是全表扫描还是走索引 。
mysql数据库操作耗时很久是什么原因1、索引:表中的索引不够优化,会导致更新操作变得缓慢 。在更新操作中使用了不必要的索引,或者索引没有被正确地使用,导致更新操作的耗时增加 。数据库设计:数据库的设计不够合理,导致更新操作变得缓慢 。
2、查询执行时间过长:如果连接因为查询执行时间过长而被断开 , 优化查询或调整超时设置可能有所帮助 。其他数据库问题:检查MySQL的错误日志,查找是否有其他与连接相关的问题或错误 。
3、DB重启之后要预热的,因为内存中缓存的数据都被清空了,需要一段时间的预热才能提高响应速度 。DB确实很慢很慢,查磁盘负载,是不是磁盘读写IO已经满了 。
4、MySQL 在崩溃恢复时,会遍历打开所有 ibd 文件的 header page 验证数据字典的准确性 , 如果 MySQL 中包含了大量表,这个校验过程就会比较耗时 。MySQL 下崩溃恢复确实和表数量有关 , 表总数越大,崩溃恢复时间越长 。
5、观测手法也就那么几种 , 我们把服务器的资源全部都观察一圈就可以了 。第三,如果实在搞不定,需求方一定要按照数据库容易接受的方式去写SQL,这个成本会下降的非常快,这个是常规的MySQL慢的诊断思路 。

    推荐阅读