我已经看到一些专用的 MySQL 服务器,它们只使用一个内核。我比 MySQL 的 DBA 更擅长开发,所以需要一些帮助
服务器非常庞大,具有 OLAP/DataWarehouse (DW) 类型的负载:
注意:最大的 DB 是从 OLTP DR 服务器复制的 DB,DW 就是从这里加载的。它不是完整的 DW:仅持续 6 个月到 6 周,因此它比 OLTP DB 小。
ALTER TABLE...DROP KEY...ADD INDEXH2 是一个单线程数据库,在性能方面享有盛誉。其他数据库是多线程的。
我的问题是:多线程数据库什么时候变得比单线程数据库更有趣?有多少用户?多少个进程?什么是触发器?有人有经验可以分享吗?
概括
RAM 的重要性是一个既定的事实,但在 MySQL 使用 CPU 时,关于内核和多线程重要性的资料要少得多。我说的是在 4cores vs 6cores vs 8cores 上运行 MySQL 的区别等等。
不同的存储引擎使用 CPU 的方式不同吗?
my.cnf(5.5 和 5.1 是一样的):
back_log=200
max_connections=512
max_connect_errors=999999
key_buffer=512M
max_allowed_packet=8M
table_cache=512
sort_buffer=8M
read_buffer_size=8M
thread_cache=8
thread_concurrency=4
myisam_sort_buffer_size=128M
interactive_timeout=28800
wait_timeout=7200
Run Code Online (Sandbox Code Playgroud)
mysql 5.5:
..mysql5.5/bin/mysqlslap -a --concurrency=10 --number-of-queries 5000
--iterations=5 -S /tmp/mysql_5.5.sock --engine=innodb
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 15.156 seconds
Minimum number of seconds to run all queries: 15.031 seconds
Maximum number of seconds to run all queries: 15.296 seconds
Number of clients running queries: 10
Average number of queries per client: 500
Run Code Online (Sandbox Code Playgroud)
mysql5.1:
..mysql5.5/bin/mysqlslap -a --concurrency=10 …Run Code Online (Sandbox Code Playgroud) 我们公司的服务器目前托管在 VPS 上,我们决定迁移到专用服务器。
在为数据库服务器选择最佳硬件时,我们应该投入更多资源:更好的 CPU(更多内核)?或更多的内存?
最佳投资回报率在哪里?
有什么建议?
我在 MySQL 5.0.15 上创建了一个数据库。我有一个查询,当我在这个 MySQL 版本上运行这个查询时,我得到 0.9 秒的运行时间。当我将此数据库导入到另一个具有相同硬件的 MySQL 服务器并运行相同的查询时,我得到了 120 多个,有时 MySQL 挂起。
5.0 和 5.1 或 5.5 有什么区别?我已经测试了 5.1 和 5.5 版本。
在较新版本中查询是否可能需要更长的时间(例如 mysql 结构更改)?
对不起,我不能把这个查询放在这里,但查询是这样的:
SELECT fl_passenger_ticket. *,
fl_aganc.name AS agancname,
fl_pnr.remark AS remark,
fl_pnr.reservetime AS reservetime,
fl_pnr.cancelpnr,
fl_flight_date.fromcity AS fromcity,
fl_flight_date.tocity AS tocity,
fl_flight_date.flightdate AS flightdate,
fl_flightdate_capacity.adultper AS adultper,
fl_flightdate_capacity.childper AS childper,
fl_flightdate_capacity.infantper AS infantper,
fl_flightdate_capacity.cancel AS cancelsegment,
fl_flightdate_capacity.tax1adultpric,
fl_flightdate_capacity.tax1childpric,
fl_flightdate_capacity.tax1infantpric,
fl_flightdate_capacity.tax2adultpric,
fl_flightdate_capacity.tax2childpric,
fl_flightdate_capacity.tax2infantpric,
( fl_flightdate_capacity.tax3adultpric +
fl_flightdate_capacity.tax4adultpric +
fl_flightdate_capacity.tax5adultpric ) AS taxxtadultpric,
( fl_flightdate_capacity.tax3childpric + …Run Code Online (Sandbox Code Playgroud) 我们在 Linux 上的 VMWare 下运行 MySQL 5.5,在 2 个 CPU 上运行。我们计划将其增加到 4,但我们有未使用的 CPU,我想知道将数量增加到 8 是否有任何好处?
即使安装了 memcached 和 APC,服务器也需要 20 多秒(等待时间/缓慢的 IO 响应时间)来响应 HTTP 请求。我相信这与 MYSQL 有关系,因为该站点有很多INSERT查询。
任何帮助将不胜感激。提前致谢。
avg-cpu: %user %nice %system %iowait %steal %idle
6.38 0.03 1.05 0.40 0.00 92.14
avg-cpu: %user %nice %system %iowait %steal %idle
10.37 0.00 1.61 3.14 0.00 84.87
avg-cpu: %user %nice %system %iowait %steal %idle
9.40 0.00 1.41 1.53 0.00 87.67
avg-cpu: %user %nice %system %iowait %steal %idle
10.02 0.00 1.42 1.09 0.00 87.46
avg-cpu: %user %nice %system %iowait %steal %idle
9.32 0.00 1.31 0.78 0.00 88.59 …Run Code Online (Sandbox Code Playgroud) mysql ×7
innodb ×4
mysql-5.5 ×4
performance ×3
mysql-5.1 ×2
my.cnf ×1
mysql-5.0 ×1
optimization ×1
tuning ×1
vmware ×1