欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 查詢突然變慢,為何分表后mysql效率會更低

謝彥文2年前22瀏覽0評論
mysql 查詢突然變慢,為何分表后mysql效率會更低?

一個數據庫實例存儲三四十萬張表,如果表文件(.frm, .ibd等)放到同一個目錄,那么打開表都會很慢,因為每次打開一個表都要打開對應的2個表文件,文件系統效率會降低。如果這些表不是都用到,建議把不用的表歸檔然后從實例中刪除。如果這幾十萬張表都是有用的,那么你要考慮分庫分表,以及考慮數據庫設計是否合理,每個表是不是只有很少的數據,這些表能否合并,等等。否則,系統查詢這三四十萬張表的需要反復在table cache中淘汰打開的表才能打開更多的表,性能會降低很多。打開每個表需要打開2個文件,通常linux操作系統不允許一個進程打開的文件達到六十萬到八十萬個的,在這樣的極限狀態下操作系統的文件系統的運行效率也會大大降低。你需要把table_open_cache, innodb_open_files和open_files_limit 這3個mysql參數配置的盡可能大,不過mysqld啟動之后,你看一下這3個變量,它們最終實際值是操作系統分配給mysqld進程的,并不一定能達到你配置的值。