<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>MySQL Forums - MyISAM</title>
        <description>Forum for MyISAM Storage Engine.</description>
        <link>https://forums.mysql.com/list.php?21</link>
        <lastBuildDate>Thu, 23 Apr 2026 03:55:00 +0000</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://forums.mysql.com/read.php?21,740787,740787#msg-740787</guid>
            <title>using the myisam engine and am having trouble with swap memory usage even though there is available system memory (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,740787,740787#msg-740787</link>
            <description><![CDATA[ Description:<br />
Hi, my os server is currently running only mysql, and mysql is not using innodb, but using myisam engine.<br />
<br />
What I&#039;m wondering is why it uses swap memory even though there is available memory, so the swap memory keeps filling up without being released.<br />
<br />
I know that the buffer/cache memory contains the query cache, so I wonder if it is normal to use swap memory instead of taking it from there.<br />
<br />
The similar issues I found are as follows:<br />
<br />
#83047, #84003<br />
<br />
Can I prevent swap from filling up by applying the above settings?<br />
<br />
The solutions I thought of are to increase the RAM or periodically initialize the swap.<br />
I wonder if there is another way, or if it is a bug, can you help me?<br />
<br />
os : Operating System: Rocky Linux 8.10<br />
<br />
# free -h<br />
              total        used        free      shared  buff/cache   available<br />
Mem:           62Gi        13Gi       584Mi       1.0Gi        48Gi        46Gi<br />
Swap:         8.0Gi       1.6Gi       6.4Gi<br />
<br />
#  cat /proc/3661008/status|grep Vm<br />
VmPeak: 21319524 kB<br />
VmSize: 19771240 kB<br />
VmLck:         0 kB<br />
VmPin:         0 kB<br />
VmHWM:  14112756 kB<br />
VmRSS:  12770808 kB<br />
VmData: 17926176 kB<br />
VmStk:       132 kB<br />
VmExe:     21748 kB<br />
VmLib:     11264 kB<br />
VmPTE:     30700 kB<br />
VmSwap:  1529616 kB<br />
<br />
mysql&gt; select engine,data,indexes,total<br />
    -&gt; from (<br />
    -&gt;   select<br />
    -&gt;     ifnull(engine,&#039;TOTALS&#039;) as engine,<br />
    -&gt;     concat(data,&#039; GB&#039;) as data,<br />
    -&gt;     concat(indexes,&#039; GB&#039;) as indexes,<br />
    -&gt;     concat(tot,&#039; GB&#039;) as total,<br />
    -&gt;     if(engine is null,-1,tot) as ord<br />
    -&gt;   from (<br />
    -&gt;     select<br />
    -&gt;       engine,<br />
    -&gt;       round( sum(data_length)/1024/1024/1024, 2 ) as data,<br />
    -&gt;       round( sum(index_length)/1024/1024/1024, 2 ) as indexes,<br />
    -&gt;       round( sum(data_length+index_length)/1024/1024/1024, 2 ) as tot<br />
    -&gt;     from information_schema.tables<br />
    -&gt;     where engine is not null and engine not in(&#039;information_schema&#039;,&#039;performance_schema&#039;)<br />
    -&gt;     group by engine with rollup<br />
    -&gt;   ) sums<br />
    -&gt; ) list<br />
    -&gt; order by list.ord desc;<br />
<br />
+--------+-----------+-----------+-----------+<br />
| engine | data      | indexes   | total     |<br />
+--------+-----------+-----------+-----------+<br />
| MyISAM | 398.18 GB | 154.33 GB | 552.50 GB |<br />
| CSV    | 0.00 GB   | 0.00 GB   | 0.00 GB   |<br />
| InnoDB | 0.00 GB   | 0.00 GB   | 0.00 GB   |<br />
| MEMORY | 0.00 GB   | 0.00 GB   | 0.00 GB   |<br />
| TOTALS | 398.18 GB | 154.33 GB | 552.51 GB |<br />
+--------+-----------+-----------+-----------+<br />
<br />
my.cnf<br />
[client]<br />
port            = 3306<br />
socket          = /tmp/mysql.sock<br />
default-character-set = utf8<br />
<br />
[mysqld]<br />
<br />
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:10G<br />
<br />
sql_mode = &quot;STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&quot;<br />
<br />
port            = 3306<br />
socket  = /tmp/mysql.sock<br />
datadir = /mnt/disk2/db_data<br />
basedir = /usr/local/mysql<br />
skip-external-locking<br />
key_buffer_size = 4096M<br />
max_allowed_packet = 20M<br />
table_open_cache = 512<br />
sort_buffer_size = 20M<br />
read_buffer_size = 20M<br />
read_rnd_buffer_size = 80M<br />
myisam_sort_buffer_size = 256M<br />
thread_cache_size = 8<br />
query_cache_size = 32M<br />
<br />
explicit_defaults_for_timestamp<br />
skip-name-resolve<br />
<br />
tmp_table_size=100M<br />
max_heap_table_size=100M<br />
<br />
ngram_token_size=2<br />
ft_min_word_len=2<br />
innodb_ft_min_token_size=2<br />
<br />
max_connections = 1000<br />
max_connect_errors = 1000<br />
wait_timeout = 7200<br />
<br />
slow_query_log<br />
long_query_time = 3<br />
slow_query_log_file=slow_query.log<br />
<br />
#symbolic-links=0<br />
<br />
character-set-client-handshake=FALSE<br />
character-set-server = utf8<br />
collation-server = utf8_unicode_ci<br />
<br />
default-storage-engine = MYISAM<br />
bulk_insert_buffer_size = 128M<br />
myisam_sort_buffer_size = 128M<br />
myisam_max_sort_file_size = 2G<br />
myisam_repair_threads = 1<br />
<br />
server-id       = 1<br />
<br />
innodb_file_per_table=1<br />
<br />
innodb_buffer_pool_size=8M<br />
<br />
innodb_data_file_path = ibdata1:10M:autoextend<br />
<br />
innodb_autoextend_increment=100<br />
<br />
innodb_additional_mem_pool_size=2M<br />
<br />
innodb_flush_log_at_trx_commit=1<br />
sync_binlog=1<br />
<br />
innodb_write_io_threads = 8<br />
innodb_read_io_threads = 8<br />
innodb_thread_concurrency = 8<br />
<br />
innodb_log_buffer_size = 8M<br />
innodb_log_file_size = 128M<br />
innodb_log_files_in_group = 3<br />
innodb_max_dirty_pages_pct = 90<br />
innodb_lock_wait_timeout = 120<br />
<br />
[mysqldump]<br />
quick<br />
max_allowed_packet = 256M<br />
default-character-set = utf8<br />
<br />
[mysql]<br />
no-auto-rehash<br />
# Remove the next comment character if you are not familiar with SQL<br />
#safe-updates<br />
default-character-set = utf8<br />
<br />
[myisamchk]<br />
key_buffer_size = 512M<br />
sort_buffer_size = 512M<br />
read_buffer = 100M<br />
write_buffer = 100M<br />
<br />
[mysqlhotcopy]<br />
interactive-timeout]]></description>
            <dc:creator>Seung Hong</dc:creator>
            <category>MyISAM</category>
            <pubDate>Thu, 05 Jun 2025 07:28:16 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,740437,740437#msg-740437</guid>
            <title>Unknown version for files .FRM and MYD (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,740437,740437#msg-740437</link>
            <description><![CDATA[ Hello,<br />
I&#039;ve got two files (.MYD and .FRM)<br />
I try to open on Mysql.<br />
I&#039;ve installed a few version but i&#039;ve the same error message that the .FRM file is not correct.<br />
CAn you tell me how i can find the good version who can manage these files?<br />
thanks a lot.]]></description>
            <dc:creator>FRACHEBOUD Remi</dc:creator>
            <category>MyISAM</category>
            <pubDate>Fri, 14 Mar 2025 14:02:50 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,725611,725611#msg-725611</guid>
            <title>Index key prefix behaviour in MyISAM (2 replies)</title>
            <link>https://forums.mysql.com/read.php?21,725611,725611#msg-725611</link>
            <description><![CDATA[ I have a VARCHAR(510) column in my table and I&#039;m gonna need a unique index (UNIQUE KEY) on it, since MyISAM index key prefix length limit is 1000 bytes I have to use index prefix like col_name(250).<br />
My question is if this will lead to a duplication problem for the unique key or not?<br />
it seems a posibility since this index will use the first 250 chars in the column which can be not unique although the whole column value is unique.]]></description>
            <dc:creator>Hassan Bahrami</dc:creator>
            <category>MyISAM</category>
            <pubDate>Thu, 22 Aug 2024 15:27:09 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,707675,707675#msg-707675</guid>
            <title>MySQL 8.0:  Still using MyISAM ? It is time to switch to InnoDB ! (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,707675,707675#msg-707675</link>
            <description><![CDATA[ MySQL 8.0:  Still using MyISAM ? It is time to switch to InnoDB !<br />
- <a href="https://blogs.oracle.com/mysql/post/still-using-myisam-it-is-time-to-switch-to-innodb"  rel="nofollow">https://blogs.oracle.com/mysql/post/still-using-myisam-it-is-time-to-switch-to-innodb</a>]]></description>
            <dc:creator>Edwin Desouza</dc:creator>
            <category>MyISAM</category>
            <pubDate>Tue, 07 Mar 2023 15:34:25 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,707511,707511#msg-707511</guid>
            <title>Delete slow as not using index (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,707511,707511#msg-707511</link>
            <description><![CDATA[ I have a very big 600G MyISAM table. Its structure is simple as 7 columns, first 5 are indexes, and last two are blob.<br />
After migrated to MySQL 8.0, the deletion runs 20 times slower than 5.0.96. There are about 50% data to purge daily.<br />
The select with same condition works with index well, but deletion not using index.<br />
Can any guru here help me out?]]></description>
            <dc:creator>EDGEFREE DU</dc:creator>
            <category>MyISAM</category>
            <pubDate>Fri, 17 Feb 2023 05:30:48 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,705334,705334#msg-705334</guid>
            <title>Default storage engine (5 replies)</title>
            <link>https://forums.mysql.com/read.php?21,705334,705334#msg-705334</link>
            <description><![CDATA[ I am using MySql server 8.0.<br />
<br />
I set the default storage engine to MyISAM as follow:<br />
<br />
SET default_storage_engine=MyISAM;<br />
<br />
But despite that, when I create a new table, it gets the InnoDB as its engine.<br />
<br />
How can I fix this problem?]]></description>
            <dc:creator>K B</dc:creator>
            <category>MyISAM</category>
            <pubDate>Tue, 19 Jul 2022 21:18:46 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,703896,703896#msg-703896</guid>
            <title>Changing ft_min_word_len without rebuilding old indexes - will that work as described below? (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,703896,703896#msg-703896</link>
            <description><![CDATA[ Hello.<br />
<br />
I have tons of myisam indexes with ft_min_word_len=4. Now I want to change it to other value, like 3 but without rebuilding old indexes. For old indexes =4 is simply ok.<br />
<br />
Will such change be ok from mysql point of view and everything will work just fine? I mean old indexes would behave like ft_min_word_len=4 while new (or rebuilt) indexes will behave as ft_min_word_len=2?<br />
<br />
Documentation doesn&#039;t really cover that. It only mentions that &quot; `FULLTEXT` indexes on `MyISAM` tables must be rebuilt after changing this variable&quot; which would be make sense if anyone would want to new setting to work for existing indexes but that isn&#039;t my case.]]></description>
            <dc:creator>Arek M</dc:creator>
            <category>MyISAM</category>
            <pubDate>Tue, 12 Apr 2022 06:19:25 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,697925,697925#msg-697925</guid>
            <title>Migrate MyISAM tables from MySQL 5.7 to 8.0 (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,697925,697925#msg-697925</link>
            <description><![CDATA[ <a href="https://lefred.be/content/migrate-myisam-tables-from-mysql-5-7-to-8-0/"  rel="nofollow">https://lefred.be/content/migrate-myisam-tables-from-mysql-5-7-to-8-0/</a>]]></description>
            <dc:creator>Edwin Desouza</dc:creator>
            <category>MyISAM</category>
            <pubDate>Mon, 02 Aug 2021 16:20:26 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,693617,693617#msg-693617</guid>
            <title>DATA DIRECTORY and INDEX DIRECTORY (2 replies)</title>
            <link>https://forums.mysql.com/read.php?21,693617,693617#msg-693617</link>
            <description><![CDATA[ I&#039;ve tried to execute:<br />
<br />
CREATE TABLE `sprading`.`myisam_test` (<br />
  `idmyisam_test` INT NOT NULL)<br />
ENGINE = MyISAM<br />
DATA DIRECTORY = &#039;G:\1&#039;<br />
INDEX DIRECTORY = &#039;G:\1&#039;;<br />
<br />
Mysql Community Server 8.0, OS Windows.<br />
My DATA DIRECTORY and INDEX DIRECTORY options are ignored by server and the table created in default server data directory.<br />
Why? How to resolve this problem?]]></description>
            <dc:creator>Евгений Б</dc:creator>
            <category>MyISAM</category>
            <pubDate>Sun, 20 Dec 2020 12:55:07 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,689801,689801#msg-689801</guid>
            <title>MySQL v8 - MYISAM Pack Information (2 replies)</title>
            <link>https://forums.mysql.com/read.php?21,689801,689801#msg-689801</link>
            <description><![CDATA[ Hello,<br />
<br />
I have previously used MYISAM tables on v5.7 on Linux Ubuntu without problems. In particular, packing information correctly appears in the &quot;Show Table Status&quot; response.<br />
<br />
I have started using Server version: 8.0.21 - MySQL Community Server - GPL with cPanel on Linux Centos 7. Packing the MYISAM tables produces identical compression ratios as v5.7 so the final file sizes are identical. What is not working is that within mysql_client (using show table status) and phpMyAdmin the packed myisam tables are still showing the original average record size and original table size.<br />
<br />
Is this possibly due to cPanel use or is this a known issue?<br />
<br />
Thanks,<br />
<br />
Frank]]></description>
            <dc:creator>Frank Peacock</dc:creator>
            <category>MyISAM</category>
            <pubDate>Thu, 03 Sep 2020 08:49:06 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,683678,683678#msg-683678</guid>
            <title>Deletion Woes (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,683678,683678#msg-683678</link>
            <description><![CDATA[ I have a very large table with many fields, among them a &quot;post_date&quot; field established as varchar(50) DEFAULT NULL and &quot;salary&quot; set up as decimal(11,2).<br />
<br />
From a LOAD INI, there are some post_date entries with invalid date fields (e.g. one has &quot;201&quot;, for instance) and some salary fields that do not have decimals (e.g. &quot;0&quot; instead of &quot;0.0&quot;.)<br />
<br />
I can find these by select, but when I change the select to a delete, I&#039;ll get &quot;incorrect datetime value&quot; or &quot;incorrect decimal value&quot;. I tried &quot;delete from table x where id in (select id from table x where year(post_date) is null)&quot;, a select that works fine on its own, but from that I get &quot;you can&#039;t specify target table x for update in from clause.&quot;.<br />
<br />
I tried to set salary to 0.0 or NULL with the same &quot;incorrect decimal value: &#039;0&#039; for column &#039;&#039; at row -1&quot; error.<br />
<br />
How can I get rid of these bad rows of data?]]></description>
            <dc:creator>Randy Smith</dc:creator>
            <category>MyISAM</category>
            <pubDate>Wed, 15 Jan 2020 17:18:37 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,683657,683657#msg-683657</guid>
            <title>MySQL 8 Windows Deletion Performance Improvement? (8 replies)</title>
            <link>https://forums.mysql.com/read.php?21,683657,683657#msg-683657</link>
            <description><![CDATA[ I&#039;m relatively new to MySQL but not to databases (40+ years).  I see there are a number of topics about performance in this forum, and then I also noticed a not-very-clear note on switching to InnoDB.<br />
<br />
First, I have a 119M record, three-field table that I will need to update once or twice a month. It&#039;s running on a Windows 2012 R2 server, MySQL 8.0, over 100GB hard drive space and 8 GB RAM (and more RAM is NOT in the budget at this time).  There is not much else running on this server. I am doing my manual transactions using MySQL Workbench.<br />
<br />
I&#039;ll first need to delete a number of rows based on their existence in another table, and then I&#039;ll need to insert a number of rows based on their non-existence in the existing table.<br />
<br />
It&#039;s a MyISAM table and the two necessary fields are indexed.<br />
<br />
The first time I tried to do the mass deletion, it ran for almost three days before I decided to kill it, thinking it was frozen.  It was not, sorry to say.<br />
<br />
So, for kicks, I tried another deletion with LIMIT 100.  It&#039;s still running after an hour.<br />
<br />
This is primarily a resource table; it won&#039;t otherwise be updated (e.g. record at a time updates based on user or other inputs).<br />
<br />
How can I best speed this search up?  Seems to me an hour - at the most - should get this done.]]></description>
            <dc:creator>Randy Smith</dc:creator>
            <category>MyISAM</category>
            <pubDate>Wed, 15 Jan 2020 17:44:00 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,675934,675934#msg-675934</guid>
            <title>MyISAM - Incorrect information in file *.frm (1 reply)</title>
            <link>https://forums.mysql.com/read.php?21,675934,675934#msg-675934</link>
            <description><![CDATA[ I have table data files table.frm, table.myi and table.myd that are from mysql version 5.6.31 on centos 7. I want to backport these files on centos 6.2 server that has mysql version 5.5.35. When I tried to do this, I am getting &quot;Incorrect information in file: table.frm&quot;. Just fyi before I copied, I had sopped the mysql server and re-started after copying files.<br />
<br />
Anyone know why I am getting this error? can a table from newer mysql version backport on a older mysql version?]]></description>
            <dc:creator>Boraiah Manjunatha</dc:creator>
            <category>MyISAM</category>
            <pubDate>Mon, 01 Jul 2019 23:12:37 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,673405,673405#msg-673405</guid>
            <title>Database Utilities (3 replies)</title>
            <link>https://forums.mysql.com/read.php?21,673405,673405#msg-673405</link>
            <description><![CDATA[ Hello,<br />
<br />
Are there any utilities that should be run to optimize your databases?<br />
<br />
We are running Mysql 5.7...and we have some large tables (1.5 million records) that we feel are slowing down our system, so as a test, I deleted all records older than 5 years, just to see how it affected my performance. To my surprise, on particular report went from running for about 25 seconds to running for over 5 minutes when I did that! So, this lead me down the path where maybe some of our latency is due to tables not being optimized from time to time. <br />
<br />
Using other data types, it was necessary to run utilities that would remove deleted records from your tables, or to reindex them...but I always thought that SQL products dealt with that without any user intervention. Am I wrong about that? Any thoughts as to why I just saw such a drastic change in performance?]]></description>
            <dc:creator>Scott Krise</dc:creator>
            <category>MyISAM</category>
            <pubDate>Fri, 15 Mar 2019 19:45:02 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,672900,672900#msg-672900</guid>
            <title>Performance by Selections (9 replies)</title>
            <link>https://forums.mysql.com/read.php?21,672900,672900#msg-672900</link>
            <description><![CDATA[ Not sure if this is the best place, but I have 2 MyISAM tables due to the fact that there are few writes, but many reads.<br />
<br />
Table 1 - Order Header 35,500,000 rows Primary Index ORD_ID which is unique<br />
Table 2 - Order Lines 85,225,000 rows Primary Index ORD_ID, ORD_Line which is unique<br />
<br />
SELECT H.ORD_Store, L.ORD_Item, SUM(L.ORD_Qty * L.ORD_Price) / SUM(L.ORD_Qty) AS WEIGHTED_PRICE, SUM(L.ORD_Qty * L.ORD_Price) AS SALES, COUNT(ORD_ITEM) AS TXNS, L.ORD_Item_Class, L.ORD_Desc FROM ord_headers as H LEFT JOIN ord_lines as L ON H.ORD_ID=L.ORD_ID WHERE (H.ORD_Date BETWEEN &#039;2018-01-01&#039; AND &#039;2018-12-31&#039;) GROUP BY ORD_Store, ORD_Item ASC<br />
<br />
Returns within 10 seconds all of the results, but if I add AND L.ORD_Item=&#039;XXXXXX&#039; to the where clause it will time out after 10 minutes.  Why does any inclusion of the second file affect performance so drastically?]]></description>
            <dc:creator>Greg Mundt</dc:creator>
            <category>MyISAM</category>
            <pubDate>Fri, 22 Mar 2019 15:29:18 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,672439,672439#msg-672439</guid>
            <title>Record locking (3 replies)</title>
            <link>https://forums.mysql.com/read.php?21,672439,672439#msg-672439</link>
            <description><![CDATA[ I am a programmer, and I have taken over the support of a system written in MYSQL. There is a mixture of MYISAM and INNODB tables within the database, and the programs are written in C++.<br />
<br />
It appears as though there is no record locking taking place anywhere in the system, and I&#039;d like some advice on the best course of action to start putting the appropriate locks in place.<br />
<br />
So, the majority of our tables are MYISAM, and I don&#039;t believe record locking is an option, only table locks can be done? Well, unless Im misunderstanding how the table locking works, that isnt an option since we have 25-50 active users.<br />
<br />
So my two questions are:<br />
<br />
1) What considerations should be given to simply changing over our myisam tables to innodb? Can I simply edit the table and make the change that way, or should I drop the old table and recreate it with the new structure?<br />
<br />
2) Once that is done, if for example a person is about to change a customer, would I just do a SELECT...FOR UPDATE on the customer Im interested in, do the update, then in some way, do an unlock (cant seem to find the syntax for that at the moment).<br />
<br />
Thanks in advance!!]]></description>
            <dc:creator>Scott Krise</dc:creator>
            <category>MyISAM</category>
            <pubDate>Wed, 30 Jan 2019 20:44:27 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,671329,671329#msg-671329</guid>
            <title>MyISAM Column / Record Delimiter (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,671329,671329#msg-671329</link>
            <description><![CDATA[ I am interested in finding what the HEX delimiter is for columns, and what tells the MySQL storage engine that it has reached the end of a record.<br />
<br />
Looking at the DAT / MYD files, the records don&#039;t seem to be in a fixed width / fixed length layout which would seem to indicate there are delimiters within the binary data.]]></description>
            <dc:creator>Alan Halls</dc:creator>
            <category>MyISAM</category>
            <pubDate>Wed, 12 Dec 2018 23:25:19 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,671095,671095#msg-671095</guid>
            <title>Optimize Table not fixing Blocks/Record (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,671095,671095#msg-671095</link>
            <description><![CDATA[ Hi,<br />
<br />
It seems as though our MyISAM tables are becoming &quot;fragmented&quot;.  When we run myisamchk -eis TABLE, some tables show that the Blocks/Record value is &gt; 1 (8, 30, and larger).  Running OPTIMIZE TABLE has no effect on that value.  Besides dumping the table and reading it back in (which we&#039;ve done), how can the table be defragmented?  We were using 5.6 with a weekly OPTIMIZE on all tables and never had a problem.  Recently we migrated to 8.0 and are seeing problems with performance.<br />
<br />
Thank you]]></description>
            <dc:creator>Jim Staff</dc:creator>
            <category>MyISAM</category>
            <pubDate>Fri, 30 Nov 2018 18:25:06 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,670799,670799#msg-670799</guid>
            <title>Mysql order by is very slow from 1,000,000 rows, we have nearly 300,000 search results (1 reply)</title>
            <link>https://forums.mysql.com/read.php?21,670799,670799#msg-670799</link>
            <description><![CDATA[ When we do Natural Search in Mysql from 1,000,000 rows, we have nearly 300,000 search results. This query lasts 7-8 seconds when we want to select the first 2,000 documents with the highest natural score.<br />
<br />
This time is too long for us. How can we shorten the duration of the first 2,000 pick by sort by natural rating?<br />
<br />
Thank you in advance for your help.<br />
<br />
select (match(baslik,detay) against(&#039;+borçlu +yetkili +icra +dairesi +tercih +kayyım +borç +daire +borc&#039; in natural LANGUAGE mode)) as n from ictihat where (match(baslik,detay) against(&#039;+borçlu +yetkili +icra +dairesi +tercih +kayyım +borç +daire +borc +Deyn +Vecibe +Evam +Liability +Kredi +Ödev +Ödünç +Namus +borcu +Takanak +Medyun +Debitor +Zimemdar +Yükümlü +Verecekli +Bölük +Çember +Çevre +İdare +Menzil +Ofis +Temşiyet +Yürütme +Curator +Kayyum +Yeğleme +Salahiyettar +Salâhiyyetdâr +Salahiyetli +Mezun&#039; in natural LANGUAGE mode)) order by n desc LIMIT 0,2000<br />
<br />
Result: 4.703 sec<br />
<br />
Explain: 1 SIMPLE ictihat fulltext aramafull aramafull 0 const 1 100.00 Using where; Using filesort<br />
<br />
select (match(baslik,detay) against(&#039;+borçlu +yetkili +icra +dairesi +tercih +kayyım +borç +daire +borc&#039; in natural LANGUAGE mode)) as n from ictihat where (match(baslik,detay) against(&#039;+borçlu +yetkili +icra +dairesi +tercih +kayyım +borç +daire +borc +Deyn +Vecibe +Evam +Liability +Kredi +Ödev +Ödünç +Namus +borcu +Takanak +Medyun +Debitor +Zimemdar +Yükümlü +Verecekli +Bölük +Çember +Çevre +İdare +Menzil +Ofis +Temşiyet +Yürütme +Curator +Kayyum +Yeğleme +Salahiyettar +Salâhiyyetdâr +Salahiyetli +Mezun&#039; in natural LANGUAGE mode)) LIMIT 0,2000<br />
<br />
Result: 1.005 sec<br />
<br />
Explain: 1 SIMPLE ictihat fulltext aramafull aramafull 0 const 1 100.00 Using where]]></description>
            <dc:creator>Ozden Haldun</dc:creator>
            <category>MyISAM</category>
            <pubDate>Fri, 23 Nov 2018 17:50:19 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,669060,669060#msg-669060</guid>
            <title>Error : Too many columns (3 replies)</title>
            <link>https://forums.mysql.com/read.php?21,669060,669060#msg-669060</link>
            <description><![CDATA[ I recently upgraded the mySQL database from version 4.xx to 5.7. I recently started working on mySQL (not my area of expertise as oracle or mssql)<br />
<br />
I get quarterly updates from a source which has more than 2000 columns in it. It works fine on older version of mySQL when the table gets created with more than 2000 columns. But the same doesn&#039;t work on the version 5.6.Yes I know, it&#039;s not a good design. Unfortunately We don&#039;t have time and budget to re-design the database. <br />
<br />
Any help is appreciated<br />
<br />
Thanks<br />
Ian]]></description>
            <dc:creator>Ian Konda</dc:creator>
            <category>MyISAM</category>
            <pubDate>Wed, 19 Sep 2018 18:45:17 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,667727,667727#msg-667727</guid>
            <title>Cannot open MyISAM backup files with MySQL 8 (3 replies)</title>
            <link>https://forums.mysql.com/read.php?21,667727,667727#msg-667727</link>
            <description><![CDATA[ Hi,<br />
<br />
We are backing up our DB using MyISAM in MySQL (to be stored on S3). We chose this method because of the convenience. It was enough to copy the folder with MySQL 5.7.<br />
<br />
We upgraded to MySQL 8 (we continued to take backups using MyISAM) and the problem is we can not restore those backups from S3 right now.<br />
<br />
None of the MySQL versions (5.6 or 8) is able to read these MyISAM backups. The files are not detected by MySQL at all.<br />
<br />
How can we restore those files in MySQL 8?<br />
<br />
Any help is greatly appreciated.<br />
<br />
Thanks,<br />
Ferit]]></description>
            <dc:creator>ferit akgul</dc:creator>
            <category>MyISAM</category>
            <pubDate>Sat, 21 Jul 2018 02:55:06 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,667542,667542#msg-667542</guid>
            <title>ONLINE DDL - Incorrect Key (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,667542,667542#msg-667542</link>
            <description><![CDATA[ I am implementing MySQL&#039;s - Online DDL to add a column to a table using ALGORITHM=INPLACE to implement &#039;Zero-Downtime upgrade&#039;. The query I execute is,<br />
<br />
<br />
ALTER TABLE documentbase_copy ADD testColumn INT, ALGORITHM=INPLACE, LOCK=NONE;<br />
<br />
<br />
the table sizes are very huge and this query works perfectly fine on tables of size 1 Million or less. But when I tried to run it on table size 10Million, I get the following error -<br />
<br />
<br />
<br />
java.sql.SQLException: Incorrect key file for table &#039;documentbase_copy&#039;; try to repair it<br />
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)<br />
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)<br />
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)<br />
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)<br />
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1116)<br />
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1066)<br />
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1396)<br />
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1051)<br />
    at com.example.Informatica.Threads.EstablishConnection.executeUpdateQuery(EstablishConnection.java:67)<br />
    at com.example.Informatica.Threads.QueryThread.run(QueryThread.java:19)<br />
    at com.example.Informatica.Threads.QueryThread.call(QueryThread.java:33)<br />
    at com.example.Informatica.Threads.QueryThread.call(QueryThread.java:1)<br />
    at java.util.concurrent.FutureTask.run(Unknown Source)<br />
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)<br />
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)<br />
    at java.lang.Thread.run(Unknown Source)<br />
<br />
<br />
<br />
I am not sure what MySQL means by &quot;incorrect key file for table {}, try to repair it.&quot; After reading some blogs, I tried to repair my table, but this is an InnoDB table and cannot be repaired.<br />
<br />
Please help!!<br />
<br />
P.S - This MySQL server and database is hosted on Amazon - RDS<br />
<br />
Thanks in advance!]]></description>
            <dc:creator>G K</dc:creator>
            <category>MyISAM</category>
            <pubDate>Mon, 09 Jul 2018 19:14:18 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,666717,666717#msg-666717</guid>
            <title>MyISAM multi queries slow performance (1 reply)</title>
            <link>https://forums.mysql.com/read.php?21,666717,666717#msg-666717</link>
            <description><![CDATA[ I am currently using MySQL Workbench of AWS to process data. I created my code as stored procedures with parameters so that I can call it to process. The thought of this function is that it sliced the main tables into multiple sub_tables based on the parameters entered and created their own temp tables to process.<br />
<br />
Lets say that without splitting the jobs it takes 312s to complete and when I split it into 7 instances to run simultaneously, it takes 183s for them to complete ( I was expecting to achieve a similar result like 312/7 = 45s around).<br />
<br />
I manually open multiple connections in MySQL both and they delivered similar results, which was not as good as I thought.<br />
<br />
Can anyone help to explain?<br />
<br />
Appreciated]]></description>
            <dc:creator>Kaihao Wang</dc:creator>
            <category>MyISAM</category>
            <pubDate>Tue, 05 Jun 2018 03:58:15 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,664350,664350#msg-664350</guid>
            <title>Meltdown Fix:  40% performance regression for MyISAM; recommend switch to InnoDB (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,664350,664350#msg-664350</link>
            <description><![CDATA[ Meltdown Fix:  40% performance regression for MyISAM; recommend switch to InnoDB<br />
<br />
<a href="https://mariadb.org/myisam-table-scan-performance-kpti/"  rel="nofollow">https://mariadb.org/myisam-table-scan-performance-kpti/</a>]]></description>
            <dc:creator>Edwin Desouza</dc:creator>
            <category>MyISAM</category>
            <pubDate>Tue, 13 Feb 2018 16:18:48 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,663769,663769#msg-663769</guid>
            <title>Write Buffering / Write Cache to reduce SSD / CFast Flash wearing (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,663769,663769#msg-663769</link>
            <description><![CDATA[ I ran a MySQL MyISAM database engine for a measurement data recording system which writes new values every second, sometimes more often.<br />
<br />
After a few weeks the CFast (https://en.wikipedia.org/wiki/CompactFlash#CFast) card died due to to many write cycles.<br />
According to the data sheets are 691.2 TBW allowed on this flash card, but only 3000 Erase/Write cycles:<br />
<a href="https://www.br-automation.com/en-ca/products/industrial-pcs/panel-pc-3100-multi-touch/cfast-cards/5cfast256g-10/#techdata"  rel="nofollow">https://www.br-automation.com/en-ca/products/industrial-pcs/panel-pc-3100-multi-touch/cfast-cards/5cfast256g-10/#techdata</a><br />
<br />
There are a lot of measurement values which get recorded, but the recording depends on a change of the measured value and a minimum recording time delay, which is different on each datapoint.<br />
<br />
There is one table for each recording value which contains just two columns:<br />
DateTime: doubleunsigned<br />
Value: 2-8 Byte, depending on the datapoint to record<br />
<br />
I think there gets a lot of small data recorded very often, what often causes the flash memory to delete flash blocks and rewrite them.<br />
<br />
Is there any way to configure a write buffering / write cache, that changes only get written if they are bigger than xxx bytes (which I would configure to the block size of the flash memory) and / or any option that changes get written at least every yyy seconds if I do not exceed the xxx bytes within this time?]]></description>
            <dc:creator>Michael Uray</dc:creator>
            <category>MyISAM</category>
            <pubDate>Mon, 22 Jan 2018 12:20:33 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,661583,661583#msg-661583</guid>
            <title>Optimum settings for Small DB running on 2G Ram (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,661583,661583#msg-661583</link>
            <description><![CDATA[ Hi. All<br />
<br />
Was hoping to get some suggestions as to MySql variable settings based on the following:<br />
<br />
1. System Ram: 2G, Database Engine: ISAM<br />
2. Tables:<br />
a: 20,000 rows, Size on disk: 250MB<br />
b: 20,000 rows, Size on disk: 13MB<br />
<br />
I run an update script daily which adds transactions to Table a, and updates various fields in Table b.<br />
<br />
There are only maybe 20 users who access this database during the day.<br />
<br />
The access consists of searches of the tables, using indexes on the tables.<br />
<br />
There are no actual searches that would look for particular values in the tables, it&#039;s all indexed...there are a lot of sequential reads based on the indexs.<br />
<br />
On a DS I had earlier, the update script would run in 28 seconds.<br />
On my current one, it runs 2:43 .....almost 3 minutes.<br />
<br />
I&#039;ve been playing around with various settings, but can&#039;t get the processing time down.<br />
<br />
Here&#039;s my current settings in my.cnf:<br />
<br />
[mysqld]<br />
performance-schema=0<br />
innodb_file_per_table=1<br />
max_allowed_packet=268435456<br />
<br />
# Made it 500. Was 10000<br />
open_files_limit=500<br />
<br />
default-storage-engine=MyISAM<br />
# My Adds<br />
bind-address=127.0.0.1<br />
query-cache-type=1<br />
query_cache_size=64M<br />
query_cache_limit=32M<br />
<br />
tmp_table_size=64M<br />
max_heap_table_size=64M<br />
key_buffer_size=512M<br />
<br />
#Tried these at 64 and ran out of memory<br />
read_buffer_size=8M<br />
read_rnd_buffer_size=8M<br />
<br />
sort_buffer_size=32M<br />
thread_cache_size=10<br />
<br />
<br />
Be forever grateful for any advise/help anybody has<br />
<br />
Thank you,<br />
z]]></description>
            <dc:creator>Hans Brost</dc:creator>
            <category>MyISAM</category>
            <pubDate>Mon, 09 Oct 2017 18:20:23 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,660537,660537#msg-660537</guid>
            <title>Additional Key Caches (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,660537,660537#msg-660537</link>
            <description><![CDATA[ Hi,<br />
<br />
I have set up two additional MyISAM key caches. How are these monitored? There do not appear to be additional &quot;key_*&quot; status variables.<br />
<br />
Are the stats for all key caches stored in the default key_* system variables? And if so, how does one determine if a key cache is doing a worthwhile job?<br />
<br />
Thanks,<br />
Al]]></description>
            <dc:creator>alan langridge</dc:creator>
            <category>MyISAM</category>
            <pubDate>Fri, 22 Sep 2017 16:53:13 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,657231,657231#msg-657231</guid>
            <title>We&#039;re a Big MyISAM Shop, But... (4 replies)</title>
            <link>https://forums.mysql.com/read.php?21,657231,657231#msg-657231</link>
            <description><![CDATA[ We have 600 instances of MySQL using MyISAM and it has worked fine for us for more than a decade, so we&#039;re not interested in switching to InnoDB. Well, not much anyway. In our opinion, InnoDB is a bloated, fly-infested warthog sweltering in the hot sun, but it does one thing well: row-level locking. After ten years of using MyISAM, we&#039;re finally running into some complex queries (very complex!) that are locking up our databases. Sometimes we get tons of &quot;locked&quot; queries stacked up waiting for one complex one to finish. <br />
<br />
We don&#039;t want to convert the whole database to InnoDB. There are 2000 tables. We suspect that there are only 15-20 tables that really need to be converted. What&#039;s the best way to analyze these super complex multi-multi-join queries to determine which tables are actually causing our problems?]]></description>
            <dc:creator>Eric Robinson</dc:creator>
            <category>MyISAM</category>
            <pubDate>Fri, 05 May 2017 17:23:49 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,657132,657132#msg-657132</guid>
            <title>Massive MyISAM query (3 replies)</title>
            <link>https://forums.mysql.com/read.php?21,657132,657132#msg-657132</link>
            <description><![CDATA[ I need help, I&#039;m way out of my league here.<br />
<br />
I have a MyISAM table I inherited. The table is live and being written to 24/7, and quite frequently. It currently holds over 21M rows on a dedicated hosting server.<br />
<br />
I need to select out about 4 million rows from it ... somehow ... to get those rows transfered to another physical server that isn&#039;t connected in any way. The query to get the rows is very simple:<br />
<br />
SELECT * FROM sales WHERE storeid=X<br />
<br />
The table has an ID column (autoincrement int) as the PK, and is also indexed on this storeid (int) column.<br />
<br />
Is there some &quot;duh, just do this...&quot; type of MySQL feature that I don&#039;t know about that would make my life easy? Otherwise I figure I have to break this up into a LOT of smaller queries to prevent locking the table from write, and make things more manageable in terms of saving the data. I figure the way to do this is by (storeid=X) and (id &gt;= Y) and (id &lt;= Z) and use Y and Z as sort of a sliding window of row numbers.<br />
<br />
If it matters, each row contains:<br />
  - 5 ints<br />
  - 3 varchar(64)<br />
  - 2 char(36)<br />
<br />
Is there some magic to help with this?]]></description>
            <dc:creator>Dave S</dc:creator>
            <category>MyISAM</category>
            <pubDate>Tue, 02 May 2017 03:05:36 +0000</pubDate>
        </item>
        <item>
            <guid>https://forums.mysql.com/read.php?21,655373,655373#msg-655373</guid>
            <title>How Switching To InnoDB Helped Us Bust Through MyISAM Walls (no replies)</title>
            <link>https://forums.mysql.com/read.php?21,655373,655373#msg-655373</link>
            <description><![CDATA[ <a href="http://dyn.com/blog/switching-to-innodb-mysqls-myisam-engine-walls/"  rel="nofollow">http://dyn.com/blog/switching-to-innodb-mysqls-myisam-engine-walls/</a>]]></description>
            <dc:creator>Edwin Desouza</dc:creator>
            <category>MyISAM</category>
            <pubDate>Wed, 22 Feb 2017 06:05:26 +0000</pubDate>
        </item>
    </channel>
</rss>
