我用php做一个模糊搜索引擎,但是一旦mysql数据表数据多了,查询速度就慢...
优化数据库字段类型。(能用其他的尽量不要用VCHAR)建立储存过程。
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接时会 逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。
查看建立索引前面的返回的结果。假如没有索引的话,explain会显示返回查询全表的数据自然会很慢了。
SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段 sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。
mysql数据量上十万条后,查询慢导致服务器卡有什么解决办法
利用表分区:这个是推荐的一个解决方案,不会带来重写逻辑等,可以根据时间来进行表分区,相当于在同一个磁盘上,表的数据存在不同的文件夹内,能够极大的提高查询速度。
那么你这时候需要在factdata表上建立(user,module,dtime)的联合索引。
将查询语句放到服务器命令行去跑,如果慢,则可以考虑通过添加索引来提高查询速度。如已有索引或添加索引后查询速度仍未改善,查看语句执行计划中,是全表扫描还是走索引。
还有其他的状态没在上面中列出来,不过它们大部分只是在查看服务器是否有存在错误是才用得着。例如如图:explain来了解SQL执行的状态explain显示了mysql如何使用索引来处理select语句以及连接表。
MySQL数据库服务器逐渐变慢分析与解决方法分享
1、第二,从服务器的角度,我们从巡检的脚本角度入手,服务器的资源就这几种,观测手法也就那么几种,我们把服务器的资源全部都观察一圈就可以了。
2、临时冒出另外一种解决想法,即用 GDB 调试崩溃恢复,通过临时修改 validate 变量值让 MySQL 跳过表空间验证过程,然后让 MySQL 正常关闭,重新启动就可以正常启动了。
3、可能是某个程序有问题,比如连接数据库之后不释放,造成无数的数据库进程,那样数据库就会越来越慢,甚至无法连接。出现故障的时候,你NETSTAT -N查看一下网络连接,看看是不是许多3306的TCP连接。
关于mysql数据多变慢和mysql多少数据会慢的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。